Infrastructure

SCOM Monitor Reset Script

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)}

}

Leave a Reply