本文提供了 Windows 7 客户端间歇性无法在启动时应用组策略的问题的解决方案。
适用于: Windows 客户端(所有支持的版本)原始 KB 数: 2421599
现象
Windows 7 客户端在启动时或重新启动时间歇性地失败组策略处理。 以下事件记录在系统事件日志中:
错误 9/9/2010 2:43:29 PM NETLOGON 5719 错误 9/9/2010 2:43:31 PM GroupPolicy 1055
原因
此行为是由网络初始化之间的争用条件引起的,即定位域控制器和处理组策略。 如果网络不可用,则不会找到域控制器,组策略处理将失败。 操作系统加载并建立网络链接后,组策略的后台刷新将成功。
以下事件序列反映条件:
Information <DateTime> EventLog 6006 指示系统关闭 Information <DateTime> e1kexpress 33 指示已使用 <速度/双工建立网络连接链接> Information <DateTime> EventLog 6005 指示事件日志服务已启动 信息 <DateTime> Dhcp-Client 50036 指示 dhcp 客户端服务已启动 错误 <DateTime> NETLOGON 5719 指示 netlogon 无法访问任何域控制器 错误 <DateTime> GroupPolicy 1055 指示组策略处理失败 Information <DateTime> GroupPolicy 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: 会话设置失败
解决方法
若要解决此问题,可以设置注册表值来延迟组策略的应用程序:
- 打开注册表编辑器。
- 展开以下子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon - 右键单击
Winlogon,指向“新建**”,然后选择“DWORD 值**”。 - 若要命名新条目,请键入
GpNetworkStartTimeoutPolicyValue,然后按 Enter。 - 右键单击
GpNetworkStartTimeoutPolicyValue,然后选择“ 修改”。 - 在“基数”下,选择“十进制”。
- 在“值”数据框中,键入 60,然后选择“ 确定”。
- 退出注册表编辑器,然后重新启动计算机。
- 如果组策略启动脚本未运行,请增加注册表项的值
GpNetworkStartTimeoutPolicyValue。
详细信息
指定的值应足够长,以确保建立连接。 在超时期间,Windows 将每隔两秒检查连接状态,并在确认连接后立即继续执行系统启动。 因此,建议在高端进行迭代。 如果系统合法断开连接(例如断开连接的网络电缆、离线服务器等),Windows 将在整个超时期内停止。
还可以通过组策略定义它:
策略位置:计算机配置 > 策略 > 管理员模板 > 系统 > 组策略设置名称:启动策略处理等待时间注册表项: HKLM\Software\Policies\Microsoft\Windows\System!GpNetworkStartTimeoutPolicyValue
如果定义组策略设置,它将替代手动设置。 如果未定义手动设置和组策略设置,将从以下注册表位置选取该值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History
由于未定义超时期限,因此系统使用自己的算法来计算并到达平均超时时间段。 此值存储在上述注册表位置。 它可能会因系统而异,具体取决于各种因素,例如以前的登录尝试。
注意
“启动策略处理等待时间”的组策略说明并不详细,并不涵盖所有方案。 只是因为我们当前未配置策略并不意味着我们将使用默认超时值 30 秒。