Tuesday, February 14, 2017

Scom discovery override using powershell

This is script that can be used to modify scom overrides in bulk.
An override management pack must be created first for this to work.
Add this mp name in the $overridemp variable.
Enter the mp that you would like to override in the $mps variable.
## Usage:
## Check the overridable paramters for your discoveries first and then change the parameter you would like to set in $override.Parameter. The format of the parameter may be like
## Selector          : $Config/PeriodInSeconds$. You should only add the “PeriodInSeconds” part
#$disc = Get-SCOMDiscovery -DisplayName “Windows Internet Information Services Web Applications 76-100 Discovery Rule”
## $discovery.GetOverrideableParameters()
Import-module operationsmanager
New-SCOMManagementGroupConnection -ComputerName MyRMS
$mps = Get-SCOMManagementPack |?{$_.name -match “Microsoft.Windows.InternetInformationServices.2003”}
$overridemp = Get-SCOMManagementPack -Name “IIS.Management.Pack.Discovery.Overrides”
$discoveries = Get-SCOMDiscovery -ManagementPack $mps
foreach($discovery in $discoveries)
if($discovery.Enabled -ne “false”)
$override = $null
$overridemp = Get-SCOMManagementPack -Name “IIS.Management.Pack.Discovery.Overrides”
$Target= Get-SCOMClass -id $discovery.Target.Id
$overridename = $discovery.name + “.Override”
$override = New-Object Microsoft.EnterpriseManagement.Configuration.ManagementPackDiscoveryConfigurationOverride($overridemp,$overridename)
$override.Discovery = $discovery
$override.Module = $discovery.DataSource
$override.Parameter = “PeriodInSeconds”
$override.value = 86400
$override.DisplayName = $overridename
$override.Context = $Target
$overridemp.Verify() ## This may fail sometimes with a validation error on 2012 R2. So just remove this line and check if your mp imports.