This script was presented by Cameron Fuller and the meat of it was written John Curtiss. This script will allow you to reset a specified monitor on all systems by just passing the monitor’s name.
To execute the script, save it as a .ps1 and pass the parameters for monitor name and management server. If you don’t specify management server it will default to local host.
Syntax
monitor_reset.ps1 –ManagementServer <MP Name> –MonitorName <Monitor>
Example
monitor_reset.ps1 –ManagementServer SCOM01 –MonitorName ‘Windows Event Log Viewer’
Param( [string]$ManagementServer, [Parameter(Mandatory=$True)] [string]$MonitorName ) # Set parameters If(!($ManagementServer)) {$ManagementServer = "localhost"}
# Load OpsMgr Module if(@(get-module | where-object {$_.Name -eq "OperationsManager"} ).count -eq 0) {Import-Module OperationsManager -ErrorVariable err -Force}
# Execute script New-SCOMManagementGroupConnection -ComputerName $ManagementServer $Monitors=Get-SCOMMonitor -ComputerName $ManagementServer | where {$_.DisplayName -eq $MonitorName} foreach ($Monitor in $Monitors) { get-scomclass -name $Monitor.target.identifier.path | Get-SCOMClassInstance | where {$_.HealthState.value__ -gt 1} | foreach {$_.ResetMonitoringState($Monitor)} } |