Ensure that the client meets the health policy requirements configured on the Network Policy Server

Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway.EventCollection.204 (Rule)

Knowledge Base article:

Summary

To resolve this issue, ensure that the client meets the health policy requirements that are configured on the Network Policy Server (NPS).

Resolutions

Also, consider checking the event log for events that confirm that Network Access Protection (NAP) health policies were successfully applied and that the client met the requirements of the TS CAP. Doing this can help you confirm that the root cause of the problem is the failure for the client to meet NAP  health policy requirements, rather than the client failing to meet TS CAP requirements.

Check the health policy requirements for the client

Perform this procedure on the NPS server that is configured to enforce NAP for TS Gateway access (the server where you have configured health policies, connection request policies, and network policies that enforce NAP for TS Gateway). To check health policy requirements, you must check the Windows Security Health Validator (WSHV) that is configured on the NPS server.

To perform this procedure, you must have membership in the local Administrators group, or you must have been delegated the appropriate authority.

To check the health policy requirements for the client:

Check the client configuration to confirm whether the client meets health policy requirements

After you note the health policy requirements configured in the WSHV on the NPS server, check the following settings on the client, and note whether the client configuration meets the requirements configured in the WSHV:

If the client settings and WSHV settings are not compatible, do one of the following:

For general information about Network Access Protection (NAP) health policies, see Network Access Protection Policies in Windows Server 2008 ( http://go.microsoft.com/fwlink/?LinkID=102394).

Search the event log to find relevant NPS events

If you have configured local Terminal Services connection authorization policies (TS CAPs), perform the following procedure on the TS Gateway server. If you have configured central TS CAPs, perform the following procedure on the NPS server where the central TS CAPs are stored.

To search the event log to find relevant NPS events:

Element properties:

TargetMicrosoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway
CategoryEventCollection
EnabledFalse
Event_ID204
Event SourceMicrosoft-Windows-TerminalServices-Gateway
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Ensure that the client meets the health policy requirements configured on the Network Policy Server
{0}
Event LogMicrosoft-Windows-TerminalServices-Gateway/Operational

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway.EventCollection.204" Enabled="false" Target="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Microsoft-Windows-TerminalServices-Gateway/Operational</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">204</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-Gateway</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway.EventCollection.204.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Params/Param[1]$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>