Update MP's for SCOM with VMM2012 R2
The fun starts here.
VMM is like more 3rd party management packs that require an app update, then push updates to SCOM.
The initial VMM MS configuration will upload the VMM UR packs to SCOM, but what do you do the next time you update VMM how do you upgrade SCOM to the latest UR?
Here's a script to upgrade SCOM once VMM UR is updated on your VMM management server.
$UR="UR11"
$VMMServer = "12VMM01"
# Set up your path, this example is monadmin\backup
$date = Get-Date -UFormat "%Y-%m-%d"
# Set up backup path
$backupPath = "C:\monadmin\backup"
$backupDrive = "C:"
####################################################################
# Functions
# Verify OperationsManager SnapIn Installed
Function VerifyOpsMgrSnapIn
{
If ( get-pssnapin -r | ? { $_.Description -contains "Operations Manager" } )
{
Write-host -f green "Operations Manager SnapIn already loaded!"
}
Else
{
add-pssnapin "Microsoft.EnterpriseManagement.OperationsManager.Client";
Write-host -f green "Operations Manager SnapIn loaded"
}
}
function BackupMP
{
if ( test-path -pathtype Container $backuppath )
{
new-item -itemtype directory -path $backupPath
write-host -f green "Created $backupPath "
}
else
{
write-host -f green "Backup Path already created $backupPath "
}
# Get VMM management pack versions before
$before = ( get-scommanagementpack -name "*VirtualMachineManager*" )
# Set up Backup Path
$backupDrive
cd $backupPath
new-item -itemtype directory -path $backupPath\$date
cd $backupPath\$date
new-item -itemtype directory -path $backupPath\$date\SCVMM_MP$UR
cd $backupPath\$date\SCVMM_MP$UR
# Copy SCVMM MP's to SCOM MS
#
copy-item "\\$VMMServer\d$\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\ManagementPacks\*" -destination $backupPath\$date\SCVMM_MP$UR
# Backup existing MP's on SCOM MS
#
# Backup SCOM Management packs to C drive
$backupDrive
cd $backupPath
new-item -itemtype directory -path c:\monadmin\backup\$date\SCVMM_MP$UR_OLD
cd $date
Get-SCOMManagementPack -Name *VirtualMachine* | Export-SCOMManagementPack -Path "$backupPath\$date"
Write-Host -f green "MP's backed up to $backupDrive\$backupPath\$date\SCVMM_MP$UR_OLD"
# Verify copy
if ( test-path -pathtype leaf $backupPath\$date\SCVMM_MP$UR\*.mp )
{
Write-Host -f green "MP's copied"
}
else
{
Write-Host -f yellow "Specify proper path for MP's copy"
}
}
Function ImportMPIntoSCOM
{
# Import VMM MP's into SCOM
# https://technet.microsoft.com/en-us/library/hh920193(v=sc.20).aspx
# https://www.systemcentercentral.com/bulk-import-operations-manager-2012-management-packs/
$mpdir = "$backupPath\$date\SCVMM_MP$UR"
$mpfiles = (Get-item -path $backupPath\$date\SCVMM_MP$UR\*).Name
$mpcnt = $mpfiles.Count
Write-Host “Script is requesting to import $mpcnt management packs.”
If ($mpcnt -gt 0)
{
Write-Host "$Instcnt management packs were added to installation queue, installing now"
foreach ($ManagementPack in $mpfiles)
{
Set-Location $mpdir
Import-SCOMManagementPack -Fullname $ManagementPack -ErrorAction SilentlyContinue
Write-host -f green "Imported $ManagementPack into SCOM"
}
}
}
VerifyOpsMgrSnapIn
BackupMP
#UpdateRegistry
ImportMPIntoSCOM
# Verify SCOM Management packs loaded
Write-host -f Green "Before Management pack versions"
$before.Version
Write-host
$after = ( get-scommanagementpack -name "*VirtualMachineManager*" )
$after.version
Write-host -f yellow "Is After greater than Before?"
Write-host