在具有 Windows Server 2008 R2 DC 的 AD 域中,用户抱怨客户端启动过程延迟。组策略日志显示客户端正在等待“网络子系统”约 20-50 秒:
事件 5322,组策略
组策略在计算机启动时等待网络子系统 29687 毫秒。
这似乎是域特有的,因为从同一网络加入不同域的机器不会遇到任何延迟,并且事件 5322 报告启动时等待时间小于 1000 毫秒。这种情况在虚拟机和物理机上都会发生,因此看起来不像是硬件或驱动程序相关的问题。
进一步的调查显示,客户端在发出 DHCP 请求之前需要花费一些时间。在网络跟踪中,我可以在网络驱动程序加载后立即看到 IPv6 路由器请求和多播 DNS 名称注册,并且在事件日志 (e1cexpress/36) 中报告网络连接“已启动”。然而,DHCPv4 客户端服务似乎需要另外 15-50 秒才能启动 (Dhcp-Client/50036),因此 IPv4 地址暂时未配置。
事件日志中的 DHCP 客户端的启动消息成功启动了“Sophos Anti-Virus”服务(Sophos Endpoint Security 10.3.7),因此我怀疑 DHCP 客户端服务的依赖关系是罪魁祸首:
但卸载所有 Sophos 组件并不能解决问题。为了检查是否有其他 3d 方驱动程序可能出现问题,我使用了NirSoft 驱动程序查看器,检查其他非 Microsoft 驱动程序并从结果中删除了 DameWare 远程控制和 Citrix ICA 包,使得系统仅保留与硬件相关的第三方驱动程序(Intel 芯片组、网络和 SATA 设备、Mirage 视频驱动程序、Macrovision 驱动程序)。
我还删除了 DHCP 客户端对 Tdx 的依赖 - 这导致 Dhcp 客户端服务启动得更早,但组策略仍然在“等待网络子系统”
我下一步该看哪里?
答案1
首先,需要记住一点:如果我没记错的话,组策略客户端通过成功连接到域控制器来确定“网络可用性”,而不仅仅是通过客户端是否具有网络连接。您可能确实有一个及时初始化的网络连接,但响应缓慢的域控制器仍然可能导致“等待网络”问题。这可以解释为什么不同域上的客户端没有遇到此问题。您可能需要检查 DC 上的事件日志。正如 Evan 所说,协议分析器会向您显示哪一方导致了延迟。
现在,有一些短期建议虽然不能解决根本问题,但可能会暂时让用户不再烦你:
在域控制器之外,组策略处理应该异步运行,除非您通过 GP 设置或手动使用 /sync 标志明确告知它。在异步模式下,策略处理不应阻碍启动或登录过程。您可能需要检查是否偶然启用了“计算机启动和登录时始终等待网络”策略。它位于计算机配置 > 管理模板 > 系统 > 登录中。尝试在客户端上运行 RSoP,看看是否启用 - 如果启用,请禁用它。您可能还想查看同一位置的“启动策略处理等待时间”策略。
这并不能解决为什么网络没有及时初始化的问题,但也许至少可以让用户暂时不再为你烦恼。异步处理确实会等待一段时间以尝试联系域控制器以获取策略列表,但等待的时间不应超过几秒钟。