Operating System BPA Monitor

Microsoft.Windows.Server.10.0.Monitoring.BPA.OperatingSystem.Monitor (UnitMonitor)

Monitors compliance of Windows Server 2016 and above operating systems with Best Practices Analyzer rules. As long as Windows Nano Server does not support BPA PowerShell cmdlets, the monitor will always be displayed as "Healthy".

Knowledge Base article:

Summary

This monitor is used to leverage the Best Practices Analyzer (BPA) features in Windows Server 2016 and above operating systems. The monitor executes the built-in BPA PowerShell cmdlets to validate that the installed Roles are in compliance with the BPA rules.

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.10.0.Monitoring.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Operating System is not compliant with Best Practices Analyzer
{0} For more information on the BPA issues detected, view the diagnostic output in the State Change Events tab for the Operating System BPA Monitor in Health Explorer. Alternately, the View Best Practices Analyzer compliance results task can be manually executed to have the results returned.
RunAsSystem.PrivilegedMonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.Monitoring.BPA.OperatingSystem.Monitor" RunAs="System!System.PrivilegedMonitoringAccount" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.10.0.Monitoring.MonitorType" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.Monitoring.BPA.OperatingSystem.Monitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MonitorHealthyState" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="MonitorWarningState" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="MonitorErrorState" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<Interval>86400</Interval>
</Configuration>
</UnitMonitor>