对 Windows Time Service w32time 问题进行故障处理

摘要: Active Directory 域中的 Windows Time Service (w32time) 问题;如何使用 w32tm 重新同步修复同步时间、配置时间服务器以及在 Windows 服务器上使用 w32tm 命令。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

在 Active Directory 中,Windows 时间服务非常重要。默认情况下,Kerberos 身份验证要求在纠正时区差异和夏令时时,域中所有机器上的时钟同步到彼此五分钟的差距内。时钟超出此范围的计算机无法进行身份验证,也无法访问域资源。

原因

在 AD 域中,具有 PDC Emulator FSMO 角色的域控制器 (DC) 是整个域的主时间服务器。但是,这并不意味着域中的每个机器都直接与 PDC Emulator 同步其时钟。其他 DC 与 PDC Emulator 同步,而成员服务器和客户端可以与任何 DC 同步。在此层次结构中,PDC Emulator 应该是配置为与外部时间源(例如公用 NTP 服务器)同步的唯一机器。应将域中的其他一切配置为与 AD 同步。任何其他配置都可能导致时钟同步丢失。

请参阅 Microsoft 文档 Windows 时间服务 本超链接将引导您访问非 Dell Technologies 运营的网站。 的工作原理,了解有关 Windows 时间服务工作方式的详细信息。

解决方案

确定问题的范围。

解决 Windows Time service 问题的第一步是确定受影响机器的数量。如果仅一台机器上的时间不正确,则修复问题的步骤与修复整个域范围的时间问题所需的步骤不同。

如果只有少数计算机受到影响:

  1. 如果受影响的计算机运行的是 Windows Vista 或更高版本,请运行 w32tm /query /source 在命令提示符下确定受影响机器的时间源。如果在 PDC Emulator 上运行此命令,则仅应列出外部时间源;否则,命令应输出域中 DC 的名称。
  2. 如果您主要使用 CIFS/NFS 来写入备份,则应使用 w32tm /query /status 命令还会显示机器的时间源以及其他可能有用的信息。如果您主要使用 CIFS/NFS 来写入备份,则应使用 /verbose 交换机提供了更多信息。与第一个命令一样,这些交换机仅在运行 Windows Vista 或更高版本的机器上可用。
  3. 如果列出了正确的时间源,则可以使用 w32tm /resync 尝试将机器的时钟与时间源重新同步。添加 /rediscover 切换到此命令会导致计算机首先尝试发现网络时间源,然后尝试重新同步。
  4. 要更改机器的时间源,您可以使用以下两个命令之一:
    w32tm /config /syncfromflags:DOMHIER /update 将计算机配置为使用域层次结构 (AD) 作为其时间源。
    w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /update 将计算机配置为使用 <list> 作为其时间源。

    提醒:如果在 <list>,它们必须用空格分隔,并且整个列表必须用引号括起来。

如果整个域受到影响:

  1. 如果该域中所有机器上的时间均不正确,则 PDC Emulator 可能是问题的根源。运行 netdom query fsmo 命令来确定哪个 DC 具有 PDC Emulator 角色。
  2. 在该节点上运行 w32tm /query /source 通过 PDC Emulator 上的命令提示符,确保将其配置为与外部时间源同步。PDC Emulator 不应被配置为与域同步,因为它是域的主时间源。
  3. 如果 PDC Emulator 是虚拟机 (VM),则禁用来宾-主机时钟同步。执行此操作的过程取决于虚拟主机上运行的操作系统。
  4. 要将 PDC Emulator 配置为与一个或多个外部时间服务器同步,请使用以下命令:
    w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /update
    提醒:如果在 <list>,它们必须用空格分隔,并且整个列表必须用引号括起来。

Windows Time service 注册表设置

如果您主要使用 CIFS/NFS 来写入备份,则应使用 w32tm 上述过程中指定的命令会更改 Windows Time service 注册表值,这些值都位于以下注册表项下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time

可以手动设置这些值,而不是使用 w32tm 命令。如果您选择这样做,以下 Microsoft 文档可能会非常有用:

组政策

如果您使用 w32tm 命令或使用注册表,但这些更改根本不生效或仅在短时间内生效,然后恢复到以前的值,组策略对象 (GPO) 可能会覆盖您的更改。Windows 时间服务的组策略设置包括许多可以使用注册表或 w32tm 命令。这些设置可在以下位置找到:

Computer Configuration\Policies\Administrative Templates\System\Windows Time Service

将 Windows Time service 注册表值重置为默认设置。

如果所有其他操作均失败,此过程会将 Windows 时间服务重置为其默认设置:

  1. 打开服务控制台并停止 Windows 时间服务(或运行 net stop w32time 从命令提示符(如果它正在运行)。
  2. 打开提升的命令提示符并运行 w32tm /unregister 从注册表中删除 Windows 时间服务。服务控制台中不再列出该服务。
  3. 在该节点上运行 w32tm /register 使用默认注册表设置重新创建服务。
  4. 进行任何必要的注册表更改,然后在服务控制台中或使用 net start w32time 命令指定可选的 spindle-group 参数,您可以实现这一点。

其他信息

常见问题解答:
  • 如何知道 Windows 时间服务是否正在运行?
要确定 Windows 时间服务(也称为 w32time 本超链接将引导您访问非 Dell Technologies 运营的网站。)是否正在运行,您可以在服务控制台中检查其状态。打开服务控制台(使用 services.msc),找到 Windows 时间,并验证其状态是否为 “正在运行”。您还可以检查 “启动类型 ”以确保其设置为 “自动 ”或 “手动”。

有关快速故障排除提示,请参阅 Meinberg 文章 Windows Time Service (w32time) Synchronization 本超链接将引导您访问非 Dell Technologies 运营的网站。 的快速故障排除。
  • Windows 时间服务有多准确?
对于需要高精度的现代应用程序,Microsoft 的 Learn 网站建议使用 Windows 10 或 Windows Server 2016 或更高版本,在最佳条件下可以达到并保持 1 毫秒 (ms) 或更高的精度。

有关详细信息,请参阅 Microsoft 文章 配置系统以实现高精度 本超链接将引导您访问非 Dell Technologies 运营的网站。

受影响的产品

Microsoft Windows Server 2016, Microsoft Windows Server 2019, Microsoft Windows Server 2022, Microsoft Windows Server 2025, Microsoft Windows Small Business Server 2008, Microsoft Windows Small Business Server 2011 Essentials , Microsoft Windows 2008 Server R2, Microsoft Windows 2008 Server Service Pack 2, Microsoft Windows 2012 Server, Microsoft Windows 2012 Server R2 ...
文章属性
文章编号: 000134430
文章类型: Solution
上次修改时间: 12 6月 2025
版本:  11
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。