M365 Office Pro Plus License Verification Monitor

Microsoft.SystemCenter.M365.Monitor.LicenseVerification (UnitMonitor)

This monitor determines if there are M365 licenses available and a connection can be made to retrieve licenses.

Knowledge Base article:

Summary

This monitor verifies that user specified is able to obtain a license. This monitor has two health states, healthy and critical. The health state is simply determined by whether a license is obtained.

Causes

An error state is caused by having issues with connecting to Microsoft 365 or fetching data. It can be caused by the following:

Resolutions

Resolution depends on the specific error. Verify and/or fix the following:

Element properties:

TargetMicrosoft.SystemCenter.M365.WatcherNodeApplication.Licensing
Parent MonitorMicrosoft.SystemCenter.M365.Monitor.Availability.WatcherNode.Licensing
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.M365.Monitor.LicenseVerification.UnitMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
M365 Office Pro Plus License Verification Monitor: Failure
This monitor is unable to verify that a user is able to obtain a license.
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.M365.Monitor.LicenseVerification" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.M365.WatcherNodeApplication.Licensing" ParentMonitorID="Microsoft.SystemCenter.M365.Monitor.Availability.WatcherNode.Licensing" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.M365.Monitor.LicenseVerification.UnitMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.M365.Monitor.LicenseVerification.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Alert Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<AzureADEndpoint>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/AzureADEndpoint$</AzureADEndpoint>
<GraphEndpoint>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/GraphEndpoint$</GraphEndpoint>
<TenantId>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/TenantId$</TenantId>
<ApplicationClientId>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.ApplicationClient"]/UserName$</ApplicationClientId>
<ApplicationClientCredentials>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.ApplicationClient"]/Password$</ApplicationClientCredentials>
<DelegatedUserId>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.DelegatedLicensingUser"]/UserName$</DelegatedUserId>
<DelegatedUserCredentials>$RunAs[Name="Microsoft.SystemCenter.M365.RunAsProfile.DelegatedLicensingUser"]/Password$</DelegatedUserCredentials>
<UserName>$Target/Host/Property[Type="Microsoft.SystemCenter.M365.WatcherNodeApplication"]/LicenseUser$</UserName>
<MatchCount>1</MatchCount>
</Configuration>
</UnitMonitor>