Get to know your monitor
Ever need to disable a specific monitor?
I know I get tired of clicking through the console, maybe you do too?
Do you know the Monitor name and class?
If yes, then you can enable/disable monitors from PowerShell
So let's get started.
From your management server, you can run SCOM commands as your ID (assuming your ID is set up in SCOM)
This example has 2 purposes:
- SQL2016 SP1 does NOT populate the proper fields, and will be fixed in SP2 per the SQL Engineering blog (Look at comments section - blog here)
- Tired of the warning alerts in my SCOM console
Find the monitors
$Monitor = get-scommonitor | where { $_.DisplayName -like "Service Pack Compliance" } | where { $_.Name -like "*Microsoft.SQLServer.2016.DBEngine*" }
Let's focus for a second on some differences, and how you can interchange the two depending on what information you know
DisplayName attribute is what you see in the console (note the spaces)
Name attribute typically has dots for the spaces
Override a class
Disable-SCOMMonitor -Class $Class -ManagementPack $MP -Monitor $Monitor
Just in case you need to undo the override
Enable-SCOMMonitor -Class $Class -ManagementPack $MP -Monitor $Monitor
Override a group
$Group = (Get-SCOMGroup -DisplayName "Group*")
# Enable the group
Enable-SCOMMonitor -Group $Group -ManagementPack $MP -Monitor $Monitor
# Disable the group
Disable-SCOMMonitor -Group $Group -ManagementPack $MP -Monitor $Monitor
Reference Links
Disable-SCOMMonitor /en-us/powershell/systemcenter/systemcenter2016/operationsmanager/vlatest/disable-scommonitor
Enable-SCOMMonitor /en-us/powershell/systemcenter/systemcenter2016/OperationsManager/vlatest/Enable-SCOMMonitor