We now have the capability to enable SCOM Rules using PowerShell.
$MS=”XXXX”
$MaPName=”XXXX”
$ClassName=”Windows Server 2008 R2 Operating System”
$RuleName=”Performance registry corruption”
if ((Get-PSSnapin | Where-Object {$_.Name -eq ‘Microsoft.EnterpriseManagement.OperationsManager.Client’}) -eq $null) {
Write-Host
Write-Host “File loaded.”
Write-Host “Initializing shell for operations manager…”
Write-Host “Add Microsoft.EnterpriseManagement.OperationsManager.Client snap in.”
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
}
if ((Get-ManagementGroupConnection | Where-Object {$_.ManagementServerName -eq $MS}) -eq $null) {
Write-Host “Connect to Management Server: $MS”
New-ManagementGroupConnection $MS -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
}
if ((Get-PSDrive | Where-Object {$_.Name -eq ‘Monitoring’}) -eq $null) {
Write-Host “Create Monitoring drive from Provider.”
New-PSDrive -Name: Monitoring -PSProvider: OperationsManagerMonitoring -Root: \ -ErrorAction SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
Write-Host “Operations manager shell initialized.”
Write-Host
}
Set-Location Monitoring:\$MS
$MP = Get-SCOMManagementPack -displayname $MPName | where {$_.Sealed -eq $False}
$Class = Get-SCOMClass -DisplayName $ClassName
$Rule = Get-SCOMRule -DisplayName $RuleName
Enable-SCOMRule -Class $Class -ManagementPack $MP -Rule $Rule -Enforce
Tags: PowerShell

[...] Enable-SCOMMonitor – example Enable-SCOMNotificationSubscription Enable-SCOMRule – example Export-SCManagementPack Export-SCOMEffectiveMonitoringConfiguration Export-SCOMManagementPack [...]
[...] enable-scomrule [...]