本文解决了启动域成员时记录的 Netlogon 事件 ID 5719 或组策略事件 1129。
原始 KB 数: 938449
现象
重要
请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 在修改注册表之前,请备份注册表,以便在出现问题时可以还原。
请注意以下情形:
- 你有一台运行 Windows 10 或 Windows Server 2012 R2 的计算机。
- 计算机已加入域。
- 当以下条件之一为 true:
- 计算机安装了千兆位网络适配器。
- 使用网络访问保护(NAP)、网络身份验证(使用 802.1x)或其他方法保护网络访问。
在此方案中,在 Windows 8.1 和更低版本中启动计算机时,系统日志中记录了以下事件。 在 Windows 10 及更高版本中,在这种情况下,不再记录事件 5719。 以下行记录在Netlogon.log中:
[CRITICAL] [960] CONTOSO: NlSessionSetup: Session setup: cannot pick trusted DC
[SESSION] [960] No IP addresses present, skipping No DC event log
此问题发生后,计算机将分配 IP 地址:
[SESSION] [960] V6 Winsock Addrs: fe80::5faf:632a:f22c:644a%2 (1) V6WinsockPnpAddresses List used to be empty.
[SESSION] [960] Winsock Addrs: 10.1.1.80 (1) List used to be empty.
在 Windows 10 及更高版本上,将仅按组件查看事件,具体取决于域控制器连接(如组策略)。 组策略调试日志中记录了以下条目:
CGPApplicationService::MachinePolicyStartedWaitingOnNetwork.
CGPMachineStartupConnectivity::CalculateWaitTimeoutFromHistory: Average is 388.
CGPMachineStartupConnectivity::CalculateWaitTimeoutFromHistory: Current is -1.
CGPMachineStartupConnectivity::CalculateWaitTimeoutFromHistory: Taking min of 776 and 30000.
Waiting for SamSs with timeout 776
NlaQueryNetSignatures returned 1 networks
NSI Information (Network GUID) : {395DB3C8-CE45-11E5-9739-806E6F6E6963}
NSI Information (CompartmentId) : 1
NSI Information (SiteId) : 134217728
NSI Information (Network Name) :
NlaGetIntranetCapability failed with 0x15
There is no domain compartment
ProcessGPOs(Machine): MyGetUserName failed with 1355.
Opened query for NLA successfully
NlaGetIntranetCapability returned Not Ready error. Consider it as NOT intranet capable.
GPSVC(530.ae0) <DateTime> There is no connectivity
GPSVC(530.8e0) <DateTime> ApplyGroupPolicy: Getting ready to create background thread GPOThread.
第一部分显示用于启动网络的超时计算。 它可以基于以前的快速启动。
第二部分显示网络位置感知(NLA)未能在允许的等待间隔内报告工作网络,组策略启动处理失败。 第三部分显示组策略引擎启动后台过程,然后在网络可用后等待一分钟。
原因
此问题可能出于以下任一原因而发生:
- Netlogon 服务在网络准备就绪之前启动。 网络堆栈和适配器初始化通常同时开始。 某些网络适配器和交换机具有链接仲裁和 MAC 地址唯一性检查,检查完成时间比为 Netlogon 设置的等待时间长,以检测网络连接。
- 验证新网络成员运行状况的解决方案会延迟网络连接以及访问域控制器的能力。 如果启用了自动直接访问通道连接,则可能需要比 Netlogon 允许的更多时间。
- 802.1X 身份验证过程延迟到域控制器的连接。
- 客户端遇到从 DHCP 服务器检索 IP 地址的延迟。 它会延迟网络接口的显示。
Windows Vista 和更高版本中的组策略将写入协商已启用 NLA 的网络状态。 它等待具有 DC 连接的网络。 但是,由于策略应用程序,组策略可能过早启动。 当在启动之间查找网络备用的延迟时,这种情况尤其如此。
警告
如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统才能解决。 Microsoft 不能保证可以解决这些问题。 您应自行承担修改注册表的风险。
解决方法 1
若要解决此问题,请安装千兆位网络适配器的最新驱动程序。 或者,在网络交换机上启用 PortFast 选项。
解决方法 2
若要解决此问题,请使用注册表更改影响 DC 连接的相关设置。 为此,请使用以下方法。
方法 1
调整已更改以允许 DC 连接的防火墙设置或 IPSEC 策略。 当客户端收到 IP 地址但需要更多时间来访问域控制器时,例如,在通过 Cisco NAC 或 Microsoft NPS 服务成功验证后,会进行这些更改。
方法 2
将 Netlogon
注册表设置配置为安全超出所需时间允许 DC 连接的值。
注意
仅当计算机已有 IP 地址时,这才有效。 这适用于 NAP 解决方案将计算机放入隔离网络的情况。 使用以下设置作为准则。
注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters
值名称:ExpectedDialupDelay
数据类型:REG_DWORD
数据值以秒为单位(默认值= 0)
数据范围介于 0 到 600 秒之间(10 分钟)
有关详细信息,请参阅 “设置”,以最大程度地减少定期 WAN 流量。
方法 3
IP 堆栈尝试使用 ARP 广播验证 IP 地址。 它会延迟 IP 联机所需的时间。 可以将 ArpRetryCount 注册表项设置为 1(1),以便缩短等待唯一性。 要执行此操作,请执行以下步骤:
启动“注册表编辑器”。
找到并选择以下子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TcpIp\Parameters\
在编辑菜单中指向新建,然后选择 DWORD 值。
键入 ArpRetryCount。
右键单击
ArpRetryCount
注册表项,然后选择“ 修改”。在“值”数据框中,键入“1”,然后选择“确定”。
注意
数据范围介于 0 和 3 之间(默认值为 3)。
退出注册表编辑器。
方法 4
通过更改 NegativeCachePeriod
以下子项中的注册表项来减少 Netlogon 负缓存周期:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\NegativeCachePeriod
进行此更改后,Netlogon 服务的行为不如域控制器脱机 45 秒。 仍记录事件 5719。 但是,该事件不会导致任何其他重大问题。 此设置允许成员在之前失败时尝试域控制器。
建议:尝试设置低值,例如三秒。 在 LAN 环境中,可以使用值 0 来关闭负缓存。
有关此设置的详细信息,请参阅 “设置”,以最大程度地减少定期 WAN 流量。
方法 5
将 Kerberos
注册表设置配置为安全超出所需时间允许 DC 连接的值。 使用以下设置作为准则。
注意
此设置仅适用于 Windows XP 和 Windows Server 2003 或这些系统的早期版本。 Windows Vista 和 Windows Server 2008 及更高版本使用默认值 0。 此值关闭 Kerberos 客户端的用户数据报协议 (UDP) 功能。
注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters
值名称:MaxPacketSize
数据类型:REG_DWORD
值数据:1
默认值:(取决于系统版本)
有关详细信息,请参阅 如何强制 Kerberos 在 Windows 中使用 TCP 而不是 UDP。
方法 6
通过将以下值添加到注册表子项来禁用 TCP/IP 的 Tcpip
媒体感知:
注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
值名称:DisableDHCPMediaSense
数据类型:REG_DWORD
值数据:1
值范围:布尔值(0 =False,1 =True)
默认值:0(False)
有关详细信息,请参阅 如何在 Windows 中禁用 TCP/IP 的媒体感知功能。
方法 7
组策略具有策略设置来控制启动策略处理的等待时间:
公司 LAN 或 WLAN:
策略文件夹:“计算机配置\管理模板\系统\组策略”
策略名称:“指定启动策略处理等待时间”外部 LAN 或 WLAN:
策略文件夹:“计算机配置\管理模板\系统\组策略”
策略名称:“指定工作区连接等待时间进行策略处理”
获取工作 IP 需要 Netlogon 的时间可能是设置的基础。 对于直接访问方案,可以测量用户群在建立连接之前的典型延迟。
方法 8
如果DisabledComponents
注册表设置已到位,并且0xfffffff的值不正确,请删除该键或将其更改为0xff的预期值。
重要
Internet 协议版本 6 (IPv6) 是 Windows Vista 和更高版本的 Windows 的必需部分。 我们建议不要禁用 IPv6 或其组件。 如果禁用,某些 Windows 组件可能无法正常工作。 此外,如果 IPv6 被错误地禁用,则系统启动将延迟 5 秒,方法是将DisabledComponents
注册表设置设置为0xfffffff值。 正确的值为 0xff。
方法 9
此行为可能是由网络初始化、定位域控制器和处理组策略之间的争用条件引起的。 如果网络不可用,则不会找到域控制器,组策略处理将失败。 操作系统加载并建立网络链接后,组策略的后台刷新将成功。
可以设置注册表值来延迟组策略的应用程序:
启动“注册表编辑器”。
找到并选择以下子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
在编辑菜单中指向新建,然后选择 DWORD 值。
键入 GpNetworkStartTimeoutPolicyValue。
右键单击
GpNetworkStartTimeoutPolicyValue
注册表项,然后选择“ 修改”。在“基数”下,选择“十进制”。
在 “值”数据 框中,键入 60,然后选择“ 确定”。
退出注册表编辑器,然后重启计算机。
如果组策略启动脚本未运行,请增加注册表项的值
GpNetworkStartTimeoutPolicyValue
。
详细信息
如果登录域时没有问题,可以安全地忽略事件 ID 5719。 由于 Netlogon 服务可能在网络准备就绪之前启动,因此计算机可能无法找到登录域控制器。 因此,记录事件 ID 5719。 网络准备就绪后,计算机将重试找到登录域控制器。 在这种情况下,操作应成功。
在Netogon.log中,可能会记录类似于以下示例的条目:
DateTime [CRITICAL] <domain>: NlDiscoverDc: Cannot find DC. DateTime [CRITICAL] <domain>: NlSessionSetup: Session setup: cannot pick trusted DC DateTime [MISC] Eventlog: 5719 (1)"<domain>" 0xc000005e ... DateTime [SESSION] WPNG: NlSetStatusClientSession: Set connection status to c000005e ... DateTime [SESSION] \Device\NetBT_Tcpip_{4A47AF53-40D3-4F92-ACDF-9B5E82A50E32}: Transport Added (10.0.64.232) -> Getting a proper IP address takes >15 seconds.
其他组件可能会报告类似的错误,这些组件需要域控制器连接才能正常运行。 例如,组策略可能不会在系统启动时应用。 在这种情况下,启动脚本不会运行。 组策略失败可能与 Netlogon 未能找到域控制器相关。 可以将组策略设置为更响应延迟网络连接到达。