This is a script you can use to update resolution state. It will look at all new alerts (resolutionstate = 0) and see if the alert description contains “domain” or “AD”, if they do, the script will set a new resolution state. The ID for the resolution state can be found under alert settings in the administration workspace, in the Operations Manager console. You can schedule task to run this script every X minute to update all new alerts.
$RMS = “myRMSHost”
Add-PSSnapin “Microsoft.EnterpriseManagement.OperationsManager.Client”
Set-Location “OperationsManagerMonitoring::”
New-ManagementGroupConnection -ConnectionString:$RMS
Set-Location $RMS$resState =Â 42Â
$alerts = get-alert -criteria ‘ResolutionState =”0″‘ | where-object {($_.Description -match “AD”) -or ($_.Description -match “domain”)}
If ($alerts) Â {
   foreach ($alert in $alerts)
   {
    $alert.ResolutionState = $resState
    $alert.Update(“”)
   }
  }Â
The schedule task command can be
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -command C:\myscripts\change_resolutionstate.ps1
Yes, as it is running PowerShell it should be enable to connect to the management group from any machine. You can also do this with Opalis if you have it around.
Hi Anders, I use your script expanded with the possibility to read different alert desrcriptions from a file. This script consume a lot of CPU at the RMS. Is it possible to run it from a MS?
TX in Advance
Knut
I am looking if the description field includes the work “AD” or the word “Domain” so it is only two keywords that I look for.
[…] Anders Bengtsson on Update resolution state with a script […]
Good post, but are you only sorting by “AD” og “domain”?
I am using the following script:
param ($rootMS)
#Initializing the Ops Mgr 2007 Powershell provider
add-pssnapin “Microsoft.EnterpriseManagement.OperationsManager.Client” -ErrorVariable errSnapin ;
set-location “OperationsManagerMonitoring::” -ErrorVariable errSnapin ;
new-managementGroupConnection -ConnectionString:$rootMS -ErrorVariable errSnapin ;
set-location $rootMS -ErrorVariable errSnapin ;
$Alerts = get-alert -criteria ‘Name = ”Script or Executable Failed to run”’ | Where {$_.ResolutionState -eq 0}
foreach($Alert in $Alerts)
{$Alert.ResolutionState = 29
$Alert.Update(“Resolution State Changed”)}
And then this command:
Powershell D:\ChangeResolutionState\SCOM\ScriptorExecutableFailedtorun.ps1 -rootMS MYRMS.domain