Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管理的所有计算机同步日期和时间。
默认情况下,加入域的计算机通过时间源的域层次结构同步时间。 但是,如果已手动将计算机配置为从特定的时间源同步(可能是因为其以前未加入域),则可以重新配置计算机,使其从域层次结构自动获取时间。
大多数已加入域的计算机的时间客户端类型为 NT5DS,这意味着它们会从域层次结构同步时间。 这方面的一个例外是充当根林域的主域控制器 (PDC) 仿真器操作主机的域控制器。 而 PDC 仿真器操作主机配置为使用外部时间源来同步时间。
请勿使用 Net time 命令来配置或设置运行 Windows 时间服务时,计算机的时钟时间。
此外,在运行 Windows XP 或更早版本的较旧计算机上,Net time /querysntp 命令显示网络时间协议 (NTP) 服务器的名称,计算机配置该服务器以进行同步,但仅当计算机的时间客户端配置为 NTP 或 AllSync 时,才可使用该 NTP 服务器。 此命令已被弃用。
Windows 时间服务遵循网络时间协议 (NTP) 规范,该规范要求使用 UDP 端口 123 进行所有时间同步。 计算机同步其时钟或向另一台计算机提供时间时,该同步在 UDP 端口 123 上进行。 此端口由 Windows 时间服务保留为目标端口。
- NTP 服务器通常在 UDP 端口 123 上侦听请求,并从同一端口响应,收件箱 W32Time NTP 服务器也是如此。
- 收件箱 W32Time NTP 客户端和 NTP 服务器可以独立启用或禁用,并且两者共享 UDP 端口 123 以用于其功能。
- 收件箱 W32Time NTP 客户端只能使用 UDP 123 作为源端口。
- 如果拥有带多个网络适配器的计算机(多宿主计算机),无法基于网络适配器启用 Windows 时间服务。
可以使用 w32tm 命令来配置 Windows 时间服务设置并诊断计算机时间问题。 W32tm 是用于配置、监视 Windows 时间服务并排查其问题的首选命令行工具。 需要具有本地管理员组的成员身份才可在本地运行此工具,并且需要具有域管理员组的成员身份才可远程运行此工具。
如需使用 w32tm,请执行以下操作:
w32tm /config [/computer:<target>] [/update]
[/manualpeerlist:<peers>] [/syncfromflags:<source>]
[/LocalClockDispersion:<seconds>]
[/reliable:(YES|NO)]
[/largephaseoffset:<milliseconds>]
computer:<target> - 调整 <target> 的设定。若未指定,默认是本机计算机。
update - 通知时间服务设定已变更,这会使得变更生效。
manualpeerlist:<peers> - 将手动对等清单设定为 <peers>,它是以空格
分隔的 DNS 和/或 IP 地址列表。
指定多部对等时,这个参数必须括在引号中。
syncfromflags:<source> - 设定 NTP 客户端要与哪个来源进行同步。<source>
应该是以逗号分隔的下列关键词的列表 (不区分大小写):
MANUAL - 从手动对等清单中的对等同步
DOMHIER - 从网域阶层中的 AD DC 同步
NO - 从空值来源同步
ALL - 同时从手动与网域对等同步
LocalClockDispersion:<seconds> - 设定当 w32time 无法从指定的来源取得时间
时,它将会假定的内部时钟的正确性。
reliable:(YES|NO) - 设定这部计算机是否为可靠的时间来源。
这个设定只有在域控制器上才有意义。
YES - 这台计算机是可靠的时间服务来源
NO - 这台计算机不是可靠的时间服务来源
largephaseoffset:<milliseconds> - 设定本机及网络时间之间的时间误差,
w32time 会将它视为 spike。
若要将客户端计算机设置为指向两个不同的时间服务器(一个名为 ntpserver.active.com,另一个名为 clock.standby.com),请运行以下命令:
w32tm /config /manualpeerlist:"ntpserver.active.com clock.standby.com" /syncfromflags:manual /update
可以为客户端提供两个时间服务器,以增加冗余功能。
若要将当前使用手动指定的计算机同步时间的客户端计算机配置为自动从 AD 域层次结构同步时间,请运行以下内容:
w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time
若要检查Windows客户端计算机主机名为:hostname1 的时间配置,请运行以下命令:
w32tm /query /computer:hostname /configuration
此命令的输出显示为客户端设置的 W32Time 配置参数的列表。
从 Windows Server 2016 开始,Microsoft已改进时间同步算法并与 RFC 规范保持一致。
因此,如果要将本地时间客户端设置为指向多个对等节点,建议要准备三个或更多不同的时间服务器。
如果希望 ntpserver.active.com 的优先级高于 clock.standby.com 的优先级,请运行下面的命令:
w32tm /config /manualpeerlist:"ntpserver.active.com ,0x8 clock.standby.com,0x2" /syncfromflags:manual /update
可以运行以下命令,并在输出中读取 NtpServer 的值:
reg query HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Windows 时间服务将一些配置属性存储为注册表项。 可以使用本地组策略编辑器中的组策略对象 (GPO) 来配置大部分此信息。 例如,可以使用 GPO 将计算机配置为 NTPServer 或 NTPClient、配置时间同步机制,或者将计算机配置为可靠时间源。
Windows 将 Windows 时间服务策略信息存储在“Computer Configuration\Administrative Templates\System\Windows Time Service”下的本地组策略编辑器中。
下表列出了可以为 Windows 时间服务配置的策略,以及这些策略影响的注册表子项等效项。
组策略 | 注册表位置 |
---|---|
全局配置设置 | W32Time |
全局配置设置 | W32Time\Config |
全局配置设置 | W32Time\Parameters |
时间提供程序\配置 Windows NTP 客户端 | W32Time\TimeProviders\NtpClient |
时间提供程序\启用 Windows NTP 客户端 | W32Time\TimeProviders\NtpClient |
时间提供程序\启用 Windows NTP 服务器 | W32Time\TimeProviders\NtpServer |
如果使用组策略将 NtpServer 值设置为“配置 Windows NTP 客户端”策略的一部分,并将其应用于域成员,则 Windows 时间服务将不会使用 NtpServer 注册表值。
若要查看 NTP 配置,请打开命令提示符并运行
w32tm /query /configuration
Windows 时间服务将信息存储在以下注册表路径下:
HKLM\SYSTEM\CurrentControlSet\Services\W32Time
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
注册表中的某些参数以时钟计时周期度量,某些参数以秒为单位度量。 若要将时间从时钟计时周期转换为秒,请使用以下转换系数: