Create empty overrides Management Pack for SCOM via PowerShell
Along the same line as this post, the below will create an empty overrides management pack based on a source management pack and client number
These are meant for the SCOM operators to use for consistent management pack naming.
Enjoy Dan!
$ManagementServer = "SCOM01"
$orgmanagementpackname = read-host "Enter Search Criteria"
###
# Find the managementpacks which fit the filter documented in $orgmanagementpackname
###
$managementpackslist = Get-SCOMManagementPack -ComputerName $ManagementServer |where{$_.DisplayName -like "*$orgManagementPackName*" -and $_.Sealed -eq $True}
Write-Host ""
Write-Host "MP's matching search criteria:"
$managementpacks = $managementpackslist | ogv -PassThru
$managementpacks | FT DisplayName,Sealed
Write-Host ""
Write-Host -foreground Yellow "Create an override management pack for each of the above source management packs?"
Write-Host ""
$Action = Read-Host "Type 'yes' to continue"
If($Action -eq "yes"){
$client = read-host "Enter client number (3 digits)"
Foreach ($managementpackocc in $managementpacks)
{
$name = $managementpackocc.name
$displayname = $managementpackocc.displayname
$ManagementPackID = $name + ".Overrides." + $Client
$ManagementPackName = $client + " - " + $displayname + " Overrides"
IF((Get-SCOMManagementPack -ComputerName $ManagementServer | where {$_.DisplayName -eq "$ManagementPackName"}) -eq $NUL)
{
$MessageGood = "MP " + "'" + $ManagementPackName + "'" + " being created..."
Write-Host -ForegroundColor Green $MessageGood
###
# For all managementpacks in array managementpacks create a new override management pack with a correct naming convention
# and 1 override management pack per environment
###
# fill in the name of the management packs
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client
$MG = New-Object Microsoft.EnterpriseManagement.ManagementGroup($ManagementServer)
$MPStore = New-Object Microsoft.EnterpriseManagement.Configuration.IO.ManagementPackFileStore
$MP = New-Object Microsoft.EnterpriseManagement.Configuration.ManagementPack($ManagementPackID, $ManagementPackName, (New-Object Version(1, 0, 0)), $MPStore)
$MG.ImportManagementPack($MP)
$MP = $MG.GetManagementPacks($ManagementPackID)[0]
$MP.DisplayName = $ManagementPackName
$MP.Description = "Auto Generated Management Pack based on: " + $displayname
$MP.AcceptChanges()
}
ELSE
{
$MessageFalse = "MP " + "'" + $ManagementPackName + "'" + " already exists - Skipping"
Write-Host -Foreground Red $MessageFalse}
}
}
ELSE
{write-host -foregroundcolor red "!!! User Aborted Procedure !!!"}
s