若要解决此问题,请确保客户端满足网络策略服务器 (NPS) 上配置的健康策略要求。
另外,请考虑在事件日志中检查相关事件,确认网络访问保护 (NAP) 健康策略已成功应用并且客户端满足 TS CAP 的要求。这样做可以帮助您确认问题的根本原因是客户端未能满足 NAP 健康策略要求,而不是客户端未能满足 TS CAP 要求。
检查客户端的健康策略要求
在配置为强制将 NAP 用于 TS 网关访问的 NPS 服务器(已配置健康策略、连接请求策略和强制将 NAP 用于 TS 网关的网络策略的服务器)上执行此过程。若要检查健康策略要求,您必须检查 NPS 服务器上配置的 Windows 安全健康验证程序 (WSHV)。
若要执行此过程,您必须拥有本地 Administrators 组成员身份,或者您必须被委派了适当的权限。
若要检查客户端的健康策略要求,请执行以下操作:
在 NPS 服务器上,打开“网络策略服务器”管理单元控制台。若要打开“网络策略服务器”,请单击“开始”,指向“管理工具”,然后单击“网络策略服务器”。
在控制台树中,展开“网络访问保护”,然后单击“系统健康验证程序”。
在详细信息窗格中,右键单击“Windows 安全健康验证程序”,然后单击“属性”。
在“Windows 安全健康验证程序的属性”对话框的“设置”选项卡上,单击“配置”。
在“Windows Vista”和/或“Windows XP SP2”选项卡上(具体取决于终端服务客户端正在运行的操作系统),记下分别为清除状态和选中状态的复选框,以便您可以检查客户端配置并确定客户端是否满足 WSHV 中的健康策略要求。
单击“确定”以关闭“Windows 安全健康验证程序的属性”对话框(以及“Windows Vista”和“Windows XP”选项卡),然后再次单击“确定”以关闭“系统安全健康验证程序的属性”对话框(以及“设置”选项卡)。
检查客户端配置以确认客户端是否满足健康策略要求
记下在 NPS 服务器上的 WSHV 中配置的健康策略要求后,请检查客户端上的以下设置,并记下客户端配置是否满足 WSHV 中配置的要求:
Windows 防火墙是否已启用
防病毒应用程序是否正在运行以及是否为最新的
反间谍应用程序是否正在运行并且是否为最新的
自动更新功能是否已启用
在客户端未安装所有可用安全更新的情况下是否限制其通过 TS 网关访问内部网络资源(如果是这样,则必须安装哪种级别的安全更新)
客户端必须检查新的安全更新的频率
除了 Microsoft Update,客户端是否还必须从 Windows Server Update Services 和 Windows Update 接收更新
如果客户端设置与 WSHV 设置不兼容,请执行下列过程之一:
修改客户端配置以确保客户端满足健康策略要求。
修改现有 WSHV 的设置。
有关网络访问保护 (NAP) 健康策略的一般信息,请参阅 Windows Server 2008 中的“网络访问保护策略”( http://go.microsoft.com/fwlink/?LinkID=102394,页面可能为英文)。
搜索事件日志以查找相关的 NPS 事件
如果已配置本地终端服务连接授权策略 (TS CAP),请在 TS 网关服务器上执行以下过程。如果已配置中央 TS CAP,请在存储中央 TS CAP 的 NPS 服务器上执行以下过程。
若要搜索事件日志以查找相关的 NPS 事件,请执行以下操作:
在 TS 网关服务器上或中央 NPS 服务器上,单击“开始”,指向“管理工具”,然后单击“事件查看器”。
导航至“Windows 日志”\“安全性”,然后搜索以下指示客户端未满足 NAP 健康策略要求的其他事件:
事件 ID 6276,关键字:审核成功。此事件说明,因成功应用了 NAP 健康策略而拒绝了该客户端访问 TS 网关服务器并对该客户端进行了隔离。
事件 ID 6272,关键字:审核成功。此事件表示 TS CAP 向客户端授予了完全访问权限。若要隔离客户端无法连接到 TS 网关服务器的根本原因,此事件将非常有用。当此事件与事件 ID 6276 记录在一起时,这表示客户端无法连接到 TS 网关服务器是由于客户端未能满足 NAP 健康要求,而不是由于客户端未能满足 TS CAP 要求。
Target | Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TSGateway | ||
Category | EventCollection | ||
Enabled | False | ||
Event_ID | 204 | ||
Event Source | Microsoft-Windows-TerminalServices-Gateway | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Microsoft-Windows-TerminalServices-Gateway/Operational |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<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>