Windows 时间服务工具和设置

Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管理的所有计算机同步日期和时间。 本文介绍用于管理 Windows 时间服务的不同工具和设置。

默认情况下,加入域的计算机通过时间源的域层次结构同步时间。 但是,如果已手动将计算机配置为从特定的时间源同步(可能是因为其以前未加入域),则可以重新配置计算机,使其从域层次结构自动获取时间。

大多数已加入域的计算机的时间客户端类型为 NT5DS,这意味着它们会从域层次结构同步时间。 这方面的一个例外是充当根林域的主域控制器 (PDC) 仿真器操作主机的域控制器。 而 PDC 仿真器操作主机配置为使用外部时间源来同步时间。

你可以在你的域中实现低至一毫秒的时间精度。 有关详细信息,请参阅支持高精度时间边界Windows Server 2016 准确时间

注意

请勿使用 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 时间服务。

W32Time 的命令行参数

可以使用 w32tm 命令来配置 Windows 时间服务设置并诊断计算机时间问题。 W32tm 是用于配置、监视 Windows 时间服务并排查其问题的首选命令行工具。 需要具有本地管理员组的成员身份才可在本地运行此工具,并且需要具有域管理员组的成员身份才可远程运行此工具。

如需使用 w32tm,请执行以下操作:

  1. 单击“开始”>键入“cmd”>右键单击“命令提示”>选择“以管理员身份运行”。
  2. 在命令提示符处,输入 w32tm,后跟适当的参数。
参数 说明
/? 显示 w32tm 命令行帮助
/config [/computer:<target>] [/update] [/manualpeerlist:<peers>] [/syncfromflags:<source>] [/LocalClockDispersion:<seconds>] [/reliable:(YES|NO)] [/largephaseoffset:<milliseconds>]** /computer:<target>:调整 <target> 的配置。 如果未指定,则默认值为本地计算机。

/update:通知 Windows 时间服务配置已更改,从而使更改生效。

/manualpeerlist:<peers>:将手动对等列表设置为 <peers>,后者是以空格分隔的 DNS 或 IP 地址列表。 指定多个对等方时,此选项必须用引号引起来。

/syncfromflags:<source> :设置 NTP 客户端应从哪些源同步。 <source> 应该是这些以逗号分隔的关键字的列表(不区分大小写):

  • MANUAL:包括手动对等列表中的对等方。
  • DOMHIER:从域层次结构中的域控制器 (DC) 同步。

/LocalClockDispersion:<seconds> :配置 W32Time 在无法从已配置的源获取时间时将采用的内部时钟的准确性。

/reliable:(YES|NO):设置此计算机是否为可靠时间源。 此设置仅对域控制器有用。

  • YES:此计算机是可靠的时间服务。
  • NO:此计算机不是可靠时间服务。

/largephaseoffset:<milliseconds>:设置 W32Time 将其视为峰值的本地时间和网络时间之间的时间差。

/debug {/disable | {/enable /file:<name> /size:/<bytes> /entries:<value> [/truncate]}} 启用或禁用本地计算机 Windows 时间服务专用日志。 此参数首先在 Windows Vista 和 Windows Server 2008 的 Windows 时间客户端中提供。

/disable:禁用专用日志。

/enable:启用专用日志。

  • file:<name> :指定绝对文件名称。
  • size:<bytes> :指定循环日志记录的最大大小。
  • entries:<value>:包含通过数字指定且以逗号分隔的标志列表,用于指定应记录的信息的类型。 有效值为 0 到 300。 数值范围和单个数字都有效,例如 0-100、103、106。 值 0-300 用于记录所有信息。

/truncate:截断文件(如果存在)。

/dumpreg [/subkey:<key>] [/computer:<target>] 显示与给定注册表项关联的值。

默认项为 HKLM\System\CurrentControlSet\Services\W32Time(Windows 时间服务的根项)。

/subkey:<key>:显示与默认项的子项 <key> 相关联的值。

/computer:<target>:查询计算机 <target> 的注册表设置。

/monitor [/domain:<domain name>] [/computers:<name>[,<name>[,<name>...]]] [/threads:<num>] 监视 Windows 时间服务。

/domain:指定要监视的域。 如果未指定域名,或未指定 /domain/computers 选项,则使用默认域。 此选项可以多次使用。

/computers:监视给定列表的计算机。 计算机名称以逗号分隔,不含空格。 如果名称以 * 为前缀,则将其视为 PDC。 此选项可以多次使用。

/threads:指定要同时分析的计算机数。 默认值为 3。 允许的范围为 1-50。

/ntpte<NTP time epoch> 将 NTP 时间(以 2-32 秒为单位,从 1900 年 1 月 1 日 0 点开始进行度量)转换为可读格式。
/ntte<NT time epoch> 将 Windows NT 系统时间(以 10-7 秒为单位,从 1601 年 1 月 1 日 0 点开始进行度量)转换为可读格式。
/query [/computer:<target>] {/source | /configuration | /peers | /status} [/verbose] 显示计算机的 Windows 时间服务信息。 此参数首先在 Windows Vista 和 Windows Server 2008 的 Windows 时间客户端中提供。

/computer:<target>:查询 <target> 的信息。 如果未指定,则默认值为本地计算机。

/source:显示时间源。

/configuration:显示运行时的配置以及设置的来源。 在详细模式下,也显示未定义或未使用的设置。

/peers:显示对等方及其状态的列表。

/status:显示 Windows 时间服务状态。

/verbose:设置详细模式以显示详细信息。

/register 注册将作为服务运行的 Windows 时间服务,并将其默认配置信息添加到注册表。
/resync [/computer:<computer>] [/nowait] [/rediscover] [/soft] 告知计算机应该尽快重新同步其时钟,并丢弃所有累积的错误统计信息。 NTP 客户端要求 UDP 123 作为源端口。

/computer:<computer> :指定应重新同步的计算机。 如果未指定,则本地计算机会重新同步。

/nowait:不等待重新同步,立即返回。 否则,请等待重新同步完成,然后再返回。

/rediscover:重新检测网络配置并重新发现网络源,然后重新同步。

/soft:使用现有错误统计信息重新同步。 这仅用于兼容性目的。

/stripchart /computer:<target> [/period:<refresh>] [/dataonly] [/samples:<count>] [/rdtsc] 显示此计算机和另一台计算机之间偏移量的带状图。 NTP 客户端使用临时 UDP 源端口与服务器通信,以防止与收件箱 NTP 客户端冲突。

/computer:<target> :将用作偏移量度量基准的计算机。

/period:<refresh> :采样间隔时间,以秒为单位。 默认值为 2 秒。

/dataonly:仅显示数据,不显示图形。

/samples:<count>:收集 <count> 个样本,然后停止。 如果未指定,则按 Ctrl+C 后才会停止收集样本。

/rdtsc:对于每个示例,此选项输出逗号分隔的值以及 RdtscStartRdtscEndFileTimeRoundtripDelayNtpOffset 标头,而不输出文本图形。

  • RdtscStart:在生成 NTP 请求之前收集的 RDTSC(读取时间戳计数器)值。
  • RdtscEnd:在接收和处理 NTP 响应之后收集的 RDTSC 值。
  • FileTime:NTP 请求中使用的本地 FILETIME 值。
  • RoundtripDelay:从生成 NTP 请求到处理收到的 NTP 响应之间所用的时间(以秒为单位),根据 NTP 往返计算结果进行计算。
  • NTPOffset:本地计算机和 NTP 服务器之间的时间偏移量(以秒为单位),根据 NTP 偏移量计算结果进行计算。
/tz 显示当前时区设置。
/unregister 注销 Windows 时间服务并从注册表中删除其所有配置信息。

将客户端设置为使用两个时间服务器

若要客户端计算机设置为指向两个不同的时间服务器(一个名为 ntpserver.contoso.com,另一个名为 clock.adatum.com),请运行以下命令:

w32tm /config /manualpeerlist:"ntpserver.contoso.com clock.adatum.com" /syncfromflags:manual /update

将客户端设置为自动从域源同步时间

若要将当前使用手动指定的计算机同步时间的客户端计算机配置为自动从 AD 域层次结构同步时间,请运行以下内容:

w32tm /config /syncfromflags:domhier /update

net stop w32time

net start w32time

检查客户端时间配置

若要从主机名为 contosoW1 的基于 Windows 的客户端计算机检查客户端配置,请运行以下命令:

w32tm /query /computer:contosoW1 /configuration

此命令的输出显示为客户端设置的 W32Time 配置参数的列表。

从 Windows Server 2016 开始,已改进时间同步算法以与 RFC 规范保持一致。 因此,如果要将本地时间客户端设置为指向多个对等节点,我们建议你准备三个或更多不同的时间服务器。

如果只有两个时间服务器,则应指定 NtpServer UseAsFallbackOnly 标志(0x2),以取消其中一个服务器的特权。 例如,如果希望 ntpserver.contoso.com 的优先级高于 clock.adatum.com 的优先级,请运行下面的命令:

w32tm /config /manualpeerlist:"ntpserver.contoso.com,0x8 clock.adatum.com,0x2" /syncfromflags:manual /update

此外,可以运行以下命令,并在输出中读取 NtpServer 的值:

reg query HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

配置计算机时钟重置

为了使 w32tm 重置计算机时钟,它首先会检查当前时间与计算机时钟时间之间的偏移量 CurrentTimeOffset(也称为 Phase Offset)以确定偏移量是否小于 MaxAllowedPhaseOffset 值。

  • CurrentTimeOffsetMaxAllowedPhaseOffset:使用时钟速率逐步调整计算机时钟。
  • CurrentTimeOffset>MaxAllowedPhaseOffset:立即设置计算机时钟。

然后,为了使用时钟速率调整计算机时钟,w32tm 会计算一个 PhaseCorrection 值。 此算法因 Windows 的版本而异:

  • Windows Server 2016 及其更高版本:

    PhaseCorrection_raw = (CurrentTimeOffset) ÷ (16 × PhaseCorrectRate × pollIntervalInSeconds)

    MaximumCorrection = (CurrentTimeOffset) ÷ (UpdateInterval ÷ 100)

    PhaseCorrection = min(PhaseCorrection_raw, MaximumCorrection)

  • Windows Server 2012 R2 及较早版本:

    若要获取 SystemClockRate 值,可使用以下命令,并使用公式“秒数 x 1,000 x 10,000”将其从秒数转换为时钟计时周期数:

    PhaseCorrection = (CurrentTimeOffset) ÷ (PhaseCorrectRate × UpdateInterval

所有版本的 Windows 均使用相同的最终公式来检查 PhaseCorrection

PhaseCorrectionSystemClockRate ÷ 2

注意

应用从 KB5006744 开始的累积更新之后,Windows Server 2019 和 Windows 10 1809 的公式与上述 Windows Server 2016 和更高版本相同。

这些公式使用以时钟计时周期为单位测量的 PhaseCorrectRateUpdateIntervalMaxAllowedPhaseOffsetSystemClockRate。 在 Windows 系统上,1 毫秒 = 10,000 个时钟计时周期。

MaxAllowedPhaseOffset 在注册表中是可配置的。 但是,注册表参数是以秒为单位(而不是以时钟计时周期为单位)来测量的。

若要查看 SystemClockRatepollIntervalInSeconds 值(以秒为单位来测量的),打开命令提示符窗口,然后运行 w32tm /query /status /verbose。 此命令会生成类似以下内容的输出:

Leap Indicator: 0(no warning)
Stratum: 1 (primary reference - syncd by radio clock)
Precision: -23 (119.209ns per tick)
Root Delay: 0.0003538s
Root Dispersion: 0.0100002s
ReferenceId: 0x00000000 (unspecified)
Last Successful Sync Time: 5/23/2023 7:51:39 PM
Source: VM IC Time Synchronization Provider
Poll Interval: 6 (64s)
 
Phase Offset: -0.0000013s
ClockRate: 0.0156250s
State Machine: 2 (Sync)
Time Source Flags: 3 (Authenticated Hardware )
Server Role: 0 (None)
Last Sync Error: 0 (The command completed successfully.)
Time since Last Good Sync Time: 15.7344985s

输出同时以时钟计时周期和秒为单位显示了轮询间隔。 公式使用以秒为单位来测量的值(圆括号中的值)。 输出以秒为单位显示了时钟速率。 若要查看以时钟计时周期为单位的 SystemClockRate 值,请使用以下公式:

(value in seconds) × 1,000 × 10,000

例如,如果 SystemClockRate 为 0.0156250 秒,那么公式使用的值为 156,250 个时钟计时周期。 下面的示例演示了如何对 Windows Server 2012 R2 及更早版本应用这些计算。

系统时钟速率偏差四分钟

你的计算机时钟时间为 11:05,而当前实际时间为 11:09:

PhaseCorrectRate = 1

UpdateInterval = 30,000 个时钟计时周期

SystemClockRate = 156,000 个时钟计时周期

MaxAllowedPhaseOffset = 10 分钟 = 600 秒 = 600 x 1,000 x 10,000 = 6,000,000,000 个时钟计时周期

CurrentTimeOffset = 4 分钟 = 4 × 60 × 1,000 × 10,000 = 2,400,000,000 个时钟计时周期

CurrentTimeOffsetMaxAllowedPhaseOffset

2,400,000,000 ≤ 6,000,000,000 = True

它是否满足以下公式?

(CurrentTimeOffset) ÷ (PhaseCorrectRate × UpdateInterval) ≤ SystemClockRate ÷ 2

2,400,000,000 ÷ (30,000 × 1) ≤ 156,000 ÷ 2

80,000 ≤ 78,000 = False

因此,w32tm 会立即调回时钟。

注意

在这种情况下,若要慢慢地调回时钟,还必须在注册表中调整 PhaseCorrectRateUpdateInterval 的值,确保等式结果为 true。

系统时钟速率偏差三分钟

你的计算机时钟时间为 11:05,而当前实际时间为 11:08:

PhaseCorrectRate = 1

UpdateInterval = 30,000 个时钟计时周期

SystemClockRate = 156,000 个时钟计时周期

MaxAllowedPhaseOffset = 10 分钟 = 600 秒 = 600 x 1,000 x 10,000 = 6,000,000,000 个时钟计时周期

CurrentTimeOffset = 3 分钟 = 3 × 60 × 1,000 × 10,000 = 1,800,000,000 个时钟计时周期

CurrentTimeOffsetMaxAllowedPhaseOffset

1,800,000,000 ≤ 6,000,000,000 = True

它是否满足以下公式?

(CurrentTimeOffset) ÷ (PhaseCorrectRate × UpdateInterval) ≤ SystemClockRate ÷ 2

(1,800,000,000) ÷ (1 × 30,000) ≤ 156,000 ÷ 2

60,000 ≤ 78,000 = True

在这种情况下,时钟会慢慢调回来。

使用本地组策略编辑器

Windows 时间服务将一些配置属性存储为注册表项。 可以使用本地组策略编辑器中的组策略对象 (GPO) 来配置大部分此信息。 例如,可以使用 GPO 将计算机配置为 NTPServer 或 NTPClient、配置时间同步机制,或者将计算机配置为可靠时间源。 Windows 时间服务的组策略设置可应用于从 Windows Server 2003 开始的域控制器和将来的迭代。

Windows 将 Windows 时间服务策略信息存储在“Computer Configuration\Administrative Templates\System\Windows Time Service”下的本地组策略编辑器中。 它存储策略在 Windows 注册表中定义的配置信息,然后使用那些注册表项来配置特定于 Windows 时间服务的注册表项。 因此,组策略定义的值会覆盖注册表的“Windows 时间服务”部分中的任何预先存在的值。 某些预设 GPO 设置不同于相应的默认 Windows 时间服务注册表项。

下表列出了可以为 Windows 时间服务配置的策略,以及这些策略影响的注册表子项等效项。

组策略 注册表位置1、 2
全局配置设置 W32Time
W32Time\Config
W32Time\Parameters
时间提供程序\配置 Windows NTP 客户端 W32Time\TimeProviders\NtpClient
时间提供程序\启用 Windows NTP 客户端 W32Time\TimeProviders\NtpClient
时间提供程序\启用 Windows NTP 服务器 W32Time\TimeProviders\NtpServer

1 子项:HKLM\SOFTWARE\Policies\Microsoft
2 子项:HKLM\SYSTEM\CurrentControlSet\Services\W32Time

注意

删除组策略设置后,Windows 会从注册表的策略区域中删除相应的条目。

W32Time 的 GPO 默认设置

启用后,你将在下面找到“全局配置设置”的默认值。

组策略设置 默认值
AnnounceFlags 10
ChainDisable 0
ChainEntryTimeout 16
ChainLoggingRate 30
ChainMaxEntries 128
ChainMaxHostEntries 4
ClockAdjustmentAuditLimit 800
ClockHoldoverPeriod 7800
EventLogFlags 2
FrequencyCorrectRate 4
HoldPeriod 5
LargePhaseOffset 50,000,000
LocalClockDispersion 10
MaxAllowedPhaseOffset 300
MaxNegPhaseCorrection 172,800(48 小时)
MaxPollInterval 10
MaxPosPhaseCorrection 172,800(48 小时)
MinPollInterval 6
PhaseCorrectRate 1
PollAdjustFactor 5
RequireSecureTimeSyncRequests 0
SpikeWatchPeriod 900
UpdateInterval 100(1 秒)
UtilizeSslTimeData 1

NTP 客户端的 GPO 设置

这些是“Computer Configuration\Administrative Templates\System\Windows Time Service\Time Providers\Configure Windows NTP Client”中包含的默认 Windows NTP 客户端设置。

组策略设置 默认值
NtpServer time.windows.com, 0x9
类型 NT5DS - 用于已加入域的计算机
NTP - 用于未加入域的计算机
CrossSiteSyncFlags 2
ResolvePeerBackoffMinutes 15
ResolvePeerBackoffMaxTimes 7
SpecialPollInterval 1024
EventLogFlags 0

注意

如果使用组策略将 NtpServer 值设置为“配置 Windows NTP 客户端”策略的一部分,并将其应用于域成员,则 Windows 时间服务将不会使用 NtpServer 注册表值。 若要查看 NTP 配置,请打开命令提示符并运行 w32tm /query /configuration

Windows 时间注册表参考

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

警告

在排除故障或进行验证时,可参考本信息。 W32Time 使用 Windows 注册表项来存储关键信息。 请勿更改这些值。 在应用对注册表的修改之前,注册表编辑器或 Windows 不会对这些修改进行验证。 如果注册表包含无效值,则 Windows 可能会遇到不可恢复的错误。

注册表中的某些参数以时钟计时周期度量,某些参数以秒为单位度量。 若要将时间从时钟计时周期转换为秒,请使用以下转换系数:

  • 1 分钟 = 60 秒
  • 1 秒 = 1000 毫秒
  • 1 毫秒 = Windows 系统上 10000 个时钟计时周期,如 DateTime.Ticks 属性中所述。

例如,5 分钟变为 5 × 60 × 1000 × 10000 = 3,000,000,000 个时钟计时周期。

在下一部分中,“所有版本”是指 Windows 7(包括将来的迭代)和 Windows Server 2008(包括将来的迭代)。

注册表项 版本 说明
AnnounceFlags 所有版本 控制是否将此计算机标记为可靠的时间服务器。 除非将计算机标记为时间服务器,否则不会将其标记为可靠。

  • 0x00: 不是时间服务器
  • 0x01: 始终是时间服务器
  • 0x02: 自动时间服务器
  • 0x04: 始终可靠的时间服务器
  • 0x08: 自动且可靠的时间服务器

域成员的默认值为 10。 独立客户端和服务器的默认值为 10

ClockAdjustmentAuditLimit Windows Server 2016 版本 1709 及更高版本;Windows 10 版本 1709 及更高版本 指定可能记录到目标计算机上的 W32Time 服务事件日志中的最小本地时钟调整。 默认值为 800(百万分率 - PPM)。
ClockHoldoverPeriod Windows Server 2016 版本 1709 及更高版本;Windows 10 版本 1709 及更高版本 指示在不与时间源同步的情况下,系统时钟可以在名义上保持其准确性的最大秒数。 如果这段时间已过,而 W32Time 未从任何输入提供程序获取新示例,W32Time 就会开始重新发现时间源。 默认值:7,800 秒。
EventLogFlags 所有版本 控制时间服务记录的具体事件。

  • 0x1: 时间跳转
  • 0x2: 源更改

域成员的默认值为 2。 独立客户端和服务器的默认值为 2

FrequencyCorrectRate 所有版本 控制校正时钟的速率。 如果此值太小,则时钟不稳定,并且出现过度校正。 如果值太大,则时钟需要很长时间才能同步。 域成员的默认值为 4。 独立客户端和服务器的默认值为 4

零不是 FrequencyCorrectRate 注册表项的有效值。 在 Windows Server 2003、Windows Server 2003 R2、Windows Server 2008 和 Windows Server 2008 R2 计算机上,如果将该值设置为 0,则 Windows 时间服务会自动将其更改为 1。

HoldPeriod 所有版本 控制禁用峰值检测以使本地时钟快速进入同步状态的时间段。 峰值是指示时间停顿了几秒的时间样本,在一致返回良好时间样本后收到峰值。 域成员的默认值为 5。 独立客户端和服务器的默认值为 5
LargePhaseOffset 所有版本 指定将大于或等于此值(以 10-7 秒为单位)的时间偏移视为峰值。 网络干扰(如流量过大)可能会导致出现峰值。 除非持续很长时间,否则将忽略峰值。 域成员的默认值为 50000000。 独立客户端和服务器的默认值为 50000000
LocalClockDispersion 所有版本 控制在唯一时间源为内置 CMOS 时钟时必须采用的离差(以秒为单位)。 域成员的默认值为 10。 独立客户端和服务器的默认值为 10
MaxAllowedPhaseOffset 所有版本 指定 W32Time 尝试使用时钟速率调整计算机时钟的最大偏移量(以秒为单位)。 当偏移量超过此速率时,W32Time 会直接设置计算机时钟。 域成员的默认值为 300。 独立客户端和服务器的默认值为 1
MaxClockRate 所有版本 由 W32Time 维护。 它包含 Windows 操作系统使用的保留数据,对此设置的任何更改都可能导致不可预测的结果。 域成员的默认值为 155860。 独立客户端和服务器的默认值为 155860
MaxNegPhaseCorrection 所有版本 指定服务可以进行的最大负向时间校正(以秒为单位)。 如果服务确定需要进行大于此值的更改,它将改为记录一个事件。

0xFFFFFFFF 为特例。 此值表示服务始终校正时间。

域成员的默认值为 0xFFFFFFFF(十六进制)。 域控制器的默认值为 172,800(48 小时)。 独立客户端和服务器的默认值为 54,000(15 小时)。

MaxPollInterval 所有版本 指定系统轮询间隔允许的最大间隔(以 log2 秒为单位)。 系统必须根据计划的时间间隔进行轮询,提供程序可以在收到生成样本的请求时拒绝该请求。 域控制器的默认值为 10。 域成员的默认值为 15。 独立客户端和服务器的默认值为 15
MaxPosPhaseCorrection 所有版本 指定服务可以进行的最大正向时间校正(以秒为单位)。 如果服务确定需要进行大于此值的更改,它将改为记录一个事件。

0xFFFFFFFF 为特例。 此值表示服务始终校正时间。

域成员的默认值为 0xFFFFFFFF(十六进制)。 域控制器的默认值为 172,800(48 小时)。 独立客户端和服务器的默认值为 54,000(15 小时)。

MinClockRate 所有版本 由 W32Time 维护。 它包含 Windows 操作系统使用的保留数据,对此设置的任何更改都可能导致不可预测的结果。 域成员的默认值为 155860。 独立客户端和服务器的默认值为 155860
MinPollInterval 所有版本 指定系统轮询间隔允许的最小间隔(以 log2 秒为单位)。 系统要求的采样频率不超过此频率,但提供程序可以在计划的时间间隔以外的时间生成样本。 域控制器的默认值为 6。 域成员的默认值为 10。 独立客户端和服务器的默认值为 10
PhaseCorrectRate 所有版本 控制校正相位错误的速率。 指定较小的值会快速校正相位错误,但可能会导致时钟变得不稳定。 如果该值过大,则需要较长的时间来校正相位错误。

域成员的默认值为 1。 独立客户端和服务器的默认值为 7

零不是 PhaseCorrectRate 注册表项的有效值。 在 Windows Server 2003、Windows Server 2003 R2、Windows Server 2008 和 Windows Server 2008 R2 计算机上,如果将该值设置为 0,则 Windows 时间服务会自动将其更改为 1。

PollAdjustFactor 所有版本 控制是决定增大还是决定减小系统的轮询间隔。 值越大,导致轮询间隔减少的错误量就越小。 域成员的默认值为 5。 独立客户端和服务器的默认值为 5
SpikeWatchPeriod 所有版本 指定可疑偏移量在被接受为正确偏移量之前必须持续的时间(以秒为单位)。 域成员的默认值为 900。 独立客户端和工作站的默认值为 900
TimeJumpAuditOffset 所有版本 一个不带正负号的整数,指示时间跳跃审核阈值(以秒为单位)。 如果时间服务通过直接设置时钟调整了本地时钟,而且时间校正大于此值,则时间服务会记录一个审核事件。
UpdateInterval 所有版本 指定相位校正调整之间的时钟计时周期数。 域控制器的默认值为 100。 域成员的默认值为 30,000。 独立客户端和服务器的默认值为 360,000

零不是 UpdateInterval 注册表项的有效值。 在运行 Windows Server 2003、Windows Server 2003 R2、Windows Server 2008 和 Windows Server 2008 R2 的计算机上,如果将该值设置为 0,Windows 时间服务会自动将其更改为 1

UtilizeSslTimeData Windows 10 版本 1511 之后的 Windows 版本 值为 1 表示 W32Time 使用多个 SSL 时间戳来播发非常不准确的时钟。 注意:UtilizeSslTimeData 是引用安全时间种子设定的注册表值。 若要了解详细信息,请参阅 安全时间种子设定 - 改进 Windows 中的时间保留。

增强了日志记录

以下注册表项不属于 W32Time 默认配置,但可以添加到注册表中,以获取增强的日志记录功能。 可以通过在组策略对象编辑器中更改“EventLogFlags”设置的值,修改记录到系统事件日志中的信息。 默认情况下,Windows 时间服务会在每次切换到新的时间源时记录一个事件。

为了启用加强的 W32Time 日志记录,请将以下注册表项添加到 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config。

条目 版本 说明
FileLogEntries 所有版本 控制 Windows 时间日志文件中创建的条目数。 默认值为 none,即不记录任何 Windows 时间活动。 有效值为 0300。 此值不影响由 Windows 时间正常创建的事件日志条目。
FileLogName 所有版本 控制 Windows 时间日志的位置和文件名。 默认值为空白,仅当更改 FileLogEntries 后才可更改此值。 有效值是 Windows 时间用于创建日志文件的完整路径和文件名。 此值不影响由 Windows 时间正常创建的事件日志条目。
FileLogSize 所有版本 控制 Windows 时间日志文件的循环日志记录行为。 定义 FileLogEntries 和 FileLogName 后,将定义允许日志文件达到的大小(以字节为单位),达到此大小后将用新条目覆盖最旧的日志条目。 对于此设置,请使用 1000000 或更大的值。 此值不影响由 Windows 时间正常创建的事件日志条目。