Rogue Detection State

Microsoft.Windows.Server.6.3.WDSRole.RogueDetectionState (UnitMonitor)

Windows Deployment Services requires interaction with Active Directory Domain Services for several critical functions. One of these functions is rogue detection, which determines whether the Pre-Boot Execution Environment (PXE) server is authorized to provide services in the domain. Rogue detection is also known as Dynamic Host Configuration Protocol (DHCP) authorization.

Knowledge Base article:

Summary

Windows Deployment Services requires interaction with Active Directory Domain Services for several critical functions. One of these functions is rogue detection, which determines whether the Pre-Boot Execution Environment (PXE) server is authorized to provide services in the domain. Rogue detection is also known as Dynamic Host Configuration Protocol (DHCP) authorization.

Event IDs 768, 774 -- Check the registry data and permissions

The Windows Deployment Services PXE server must be able to read the necessary configuration settings from the registry so that is can provide network boot programs to client computers. To resolve this issue, ensure that the registry data is not missing or corrupt, and that the PXE server has the correct permissions.

Event IDs 771, 770, 772, 773, 776 -- Authorize the server in Active Directory

The WDSServer service must be authorized in Active Directory Domain Services in order to pass the rogue detection process. To resolve this issue, first authorize the service (open a Command Prompt window and run wdsutil /set-server /authorize:yes.) If this command returns an error, this means that it was not possible to authorize the server. In this case, do the following in the specified order until the issue is resolved:

Resolutions

Event IDs 768, 774 -- Check the registry data and permissions

Caution: Incorrectly editing the registry might severely damage your system. Before making changes to the registry, you should back up any valued data.

To perform this procedure, you must either be a member of the local Administrators group or have been delegated the appropriate authority.

To ensure the registry data and permissions:

Event IDs 771, 770, 772, 773, 776 -- Authorize the server in Active Directory

Ensure that the domain controller is reachable

If you can ping the domain controller by IP address, reachability is not the problem. If you cannot ping it by IP address, ensure that:

Note: The following procedures include steps for using the ping command to perform troubleshooting. Therefore, before using these steps, determine whether the firewall or Internet Protocol security (IPsec) settings on your network permit Internet Control Message Protocol (ICMP) traffic. ICMP is the TCP/IP protocol that is used by the ping command.

To perform these procedures, you must either be a member of the local Administrators group or have been delegated the appropriate authority.

To determine whether there is a network connectivity problem:

If necessary, you can perform the following additional steps to help identify the root cause of the problem:

If none of these steps resolves your issue, use the procedure in the following section to ensure that the machine account has the required permissions.

Ensure that the machine account has sufficient permissions.

On the server that contains Active Directory directory services, grant server permissions to the machine account for the Windows Deployment Services server so that it can read the Service Control Point (SCP).

To perform this procedure, you must either be a member of the local Domain Admins group or have been delegated the appropriate authority.

To grant permissions to the SCP object:

If the SCP object has the correct permissions, use the instructions in the following section to ensure that the registry data is correct.

Ensure that the registry configuration data is correct

If neither of the first two solutions in this topic fixes your issue, the registry data may be corrupt. To determine whether this data is corrupt, run the WDSUTIL /get-server /server:<server name> command at the command prompt. If this command fails or if the output is corrupted, you will need to reinitialize the server. To do this, run wdsutil /uninitialize-server at the command prompt, and then run wdsutil /initialize-server /reminst:<path to RemoteInstall folder>.

Element properties:

TargetMicrosoft.Windows.Server.6.3.WDSRole
Parent MonitorSystem.Health.AvailabilityState
CategoryStateCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.3SingleEventLog3StateUnitMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Rogue Detection State
Event ID: {0} -- {1}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.6.3.WDSRole.RogueDetectionState" Accessibility="Public" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.Server.6.3.WDSRole" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.3SingleEventLog3StateUnitMonitorType" ConfirmDelivery="true">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.6.3.WDSRole.RogueDetectionState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDisplayNumber$</AlertParameter1>
<AlertParameter2>$Data/Context/EventDescription$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="FirstEventRaised" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="SecondEventRaised" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="ThirdEventRaised" HealthState="Error"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Application</FirstLogName>
<FirstExpression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(769|775|777)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">WDSPXE</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Application</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>WDSPXE</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>771</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
<ThirdComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ThirdComputerName>
<ThirdLogName>Application</ThirdLogName>
<ThirdExpression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(768|770|772|773|774|776)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">WDSPXE</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</ThirdExpression>
</Configuration>
</UnitMonitor>