Windows 7 客户端在启动时间歇性地无法应用组策略

本文提供了一个解决方案,可解决 Windows 7 客户端在启动时间歇性地无法应用组策略的问题。

适用于:  Windows 7 Service Pack 1
原始 KB 编号:   2421599

症状

Windows 7 个客户端在启动时或重新启动时间歇性地未能进行组策略处理。 以下事件记录在系统事件日志中:

错误 9/9/2010 2:43:29 PM NETLOGON 5719 错误 9/9/2010 2:43:31 PM GroupPolicy 1055

原因

此行为由网络初始化、定位域控制器和处理组策略之间的竞争条件导致。 如果网络不可用,将找不到域控制器,组策略处理将失败。 加载操作系统并协商建立网络链接后,组策略的后台刷新将成功。

以下事件序列反映了这种情况:

信息 <DateTime> 事件日志 6006 指示系统关闭
信息 <DateTime> e1kexpress 33 指示已建立网络连接链接 <speed/duplex>
信息 <DateTime> 事件日志 6005 指示事件日志服务已启动
信息 <DateTime> Dhcp-Client 50036 指示 dhcp 客户端服务已启动
错误 <DateTime> NETLOGON 5719 指示 netlogon 无法访问任何域控制器
错误 <DateTime> GroupPolicy 1055 指示组策略处理失败
信息 <DateTime> 组策略 1503 指示组策略处理成功

也可通过日志 netlogon 进行确认:

<DateTime> [SESSION] \Device\NetBT_Tcpip_{53267BA1-EB8C-4348-BD81-41C3FF162EE9}:Transport Added () <IP Address> <DateTime> [SESSION] Winsock Addrs: <IP Address> (1) Address changed. <DateTime> [CRITICAL]NetpDcGetDcNext:_ldap._tcp.dc._msdcs.contoso.com.:无法查询 DNS。 1460 0x5b4 <DateTime> [CRITICAL] NetpDcGetNameIp: contoso.com .: 没有从 DnsQuery 返回的数据。 <DateTime> [CRITICAL]DBG:NlDiscoverDc:找不到 DC。 <DateTime> [CRITICAL]DBG:NlSessionSetup:会话设置:无法选取受信任的 DC <DateTime> [SESSION] DBG:NlSetStatusClientSession:将连接状态设置为 c000005e <DateTime> [SESSION] DBG:NlSessionSetup:会话设置失败

解决方案

若要解决此问题,可以设置注册表值来延迟组策略的应用:

  1. 打开注册表编辑器。

  2. 展开以下子项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

  3. 右键单击 Winlogon ,指向 新建,然后选择 DWORD 值

  4. 若要命名新条目,请键入 GpNetworkStartTimeoutPolicyValue ,然后按 Enter。

  5. 右键单击 GpNetworkStartTimeoutPolicyValue ,然后选择修改。

  6. 在"基本" 下,选择"十进制"。

  7. 在"值数据"框中,键入 60, 然后选择"确定 "。

  8. 退出注册表编辑器,然后重新启动计算机。

  9. 如果组策略启动脚本未运行,请增加 GpNetworkStartTimeoutPolicyValue 注册表项的值。

更多信息

指定的值应足够长,以确保已建立连接。 在超时期间,Windows将每两秒检查一次连接状态,一旦确认连接,系统将继续启动。 因此,建议在较高端进行错误。 如果系统已合法断开连接 (例如,断开的网络电缆、断开的线路服务器等) ,Windows将在整个超时时间内停止。

它还可以通过组策略进行定义:

策略位置:计算机配置>策略>管理模板> System > 组策略设置名称:启动策略处理等待时间注册表项: HKLM\Software\Policies\Microsoft\Windows\System!GpNetworkStartTimeoutPolicyValue

如果定义组策略设置,它将覆盖手动设置。 未定义手动和组策略设置时,会从以下注册表位置选取值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History

由于未定义任何时间段,因此系统使用自己的算法来计算并到达平均退出时段。 此值存储在上述注册表位置。 它可能会因系统而异,并且取决于各种因素,例如以前的登录尝试。

备注

"启动策略处理等待时间"的组策略说明并不详细,并未涵盖所有方案。 因为我们当前未配置策略,但这并不意味着我们将使用默认 30 秒的退出值。