Time Skew Monitor

Microsoft.Windows.Server.2012.AD.TimeSkew.Monitor (UnitMonitor)

Monitors that the time on the current DC matches the time on the PDC.

Knowledge Base article:

Summary

AD Time Skew Monitor. This monitor generates an alert when the time difference between the local domain controller and a target domain controller exceeds a specified threshold.

This means that two domain controller disagree about the current time. If the time skew grows too large, Kerberos authentication can be affected.

Configuration

Causes

Possible causes include the following:

Resolutions

Verify each DC is syncing from either the PDC or a Gtime server. Verify that which ever DC all other DCs are syncing time from is set to use an external time source.

You can use the command line tool w32tm.exe to configure time on the DCs. See external resources below.

External

For more information, see:

Element properties:

TargetMicrosoft.Windows.Server.2012.AD.DomainControllerRole
Parent MonitorMicrosoft.Windows.Server.2012.AD.WindowsTime.AggregateMonitor
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.2012.AD.TimeSkew.Monitortype
RemotableFalse
AccessibilityPublic
Alert Message
The Time Skew monitor has failed.
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2012.AD.TimeSkew.Monitor" Accessibility="Public" Enabled="true" Target="AD2012Core!Microsoft.Windows.Server.2012.AD.DomainControllerRole" ParentMonitorID="Microsoft.Windows.Server.2012.AD.WindowsTime.AggregateMonitor" Remotable="false" Priority="Normal" TypeID="Microsoft.Windows.Server.2012.AD.TimeSkew.Monitortype" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2012.AD.TimeSkew.Monitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='ErrorString']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="TimeSkewOK" MonitorTypeStateID="TimeSkewOK" HealthState="Success"/>
<OperationalState ID="TimeSkewError" MonitorTypeStateID="TimeSkewError" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<Frequency>300</Frequency>
<TimeoutSeconds>300</TimeoutSeconds>
<Threshold>120</Threshold>
<Iterations>3</Iterations>
<TargetServer>$Target/Property[Type="AD!Microsoft.Windows.Server.AD.Library.DomainControllerRole"]/PDCEmulator$</TargetServer>
</Configuration>
</UnitMonitor>