本文介绍如何根据较大的时间偏移量配置 Windows 时间服务。
适用于: Windows Server(所有支持的版本)、Windows 客户端(所有支持的版本)
原始 KB 数: 884776
简介
Windows作系统包括 Kerberos 身份验证协议使用的时间服务工具(W32Time 服务)。 如果相关计算机之间的时间间隔在启用的最大时间倾斜范围内,Kerberos 身份验证将有效。 默认为 5 分钟。 还可以关闭时间服务工具。 然后,可以安装第三方时间服务。
时间服务工具的目的是确保运行Microsoft Windows Server 2012 或更高版本 Windows作系统的组织中的所有计算机都使用公共时间。 为了确保有适当的常见时间使用情况,时间服务使用控制颁发机构的分层关系。 默认情况下,基于 Windows 的计算机使用下面的层级:
所有客户端计算机将身份验证域控制器指定为其权威时间源。
在域中,所有服务器都遵循客户端计算机所遵循的相同过程。
域中的所有域控制器将主域控制器 (PDC)作主机指定为其时间源。
所有 PDC作主机都遵循所选时间源中的域层次结构。 但是,PDC作主机可以使用基于分层编号的父域控制器。
备注
层数定义时间服务器与主要引用源的接近程度。
该数字越小,服务器越接近主时间源。 在此层次结构中,林根目录中的 PDC作主节点将成为组织的权威时间服务器。 强烈建议将权威时间服务器配置为从硬件源收集时间。 尝试将权威时间服务器配置为与 Internet 时间源同步时,不会进行身份验证。 我们还建议减少服务器和独立客户端的时间更正设置。 按照这些建议作时,会向域提供更准确的时间。
详细信息
对时间回滚的回顾表明,计算机可以采用将来或过去几十年的时间, 可以是天、月、年,甚至几十年。 当计算机及时前滚或向后滚动时,可能会出现以下问题:
- 计算机帐户、用户帐户和信任关系上的密码可能会过早更新。
- Active Directory 目录服务复制中的 NTDS 复制事件 2042 可以标识隔离区。
- 对于计算机帐户、用户帐户或信任关系,密码不匹配是权威还原的。 从此类不匹配中恢复可能需要对所有受影响的帐户和信任进行手动密码重置。
如何防止前滚和时间回滚的时间
重启计算机和电源周期时,BIOS 会在位于计算机的主板上的本地 EPROM 中维护时间。 当 Windows 启动时,内核将从 BIOS 拉取当前时间。 此当前时间用作 W32Time 服务可以与其他时间源同步的初始时间。
Windows 时间服务支持两个注册表项,以及 MaxPosPhaseCorrection
.MaxNegPhaseCorrection
这些条目限制从远程计算机发送这些示例时服务在本地计算机上接受的示例。
当处于稳定状态的计算机从其时间源接收时间样本时,会根据和注册表项施加的MaxPosPhaseCorrection
MaxNegPhaseCorrection
阶段更正边界检查样本。 如果时间示例超出了两个注册表项强制实施的限制,则接受此示例进行其他处理。 如果时间样本不属于这些限制,则忽略时间样本,时间服务会在 W32Time 专用日志文件中记录以下消息:
太大
如果管理员减少了正面和负面阶段更正的值,管理员可以减少计算机从基于 Windows 的计算机的无效时间样本中接收时间的威胁。 另一方面,如果管理员减少了该值,管理员可能会阻止计算机提前或落后于当前时间,超过这些值施加的限制。
备注
如果正更正和负更正的注册表项值减少,则会增加或减少时间。
Windows 10、Windows Server 2012 及更高版本中的注册表项和注册表项的默认值MaxPosPhaseCorrection
MaxNegPhaseCorrection
如下:
0xFFFFFFF
此值使计算机能够接收包含在任何时间样本中的时间,无论是否不准确。
在作为域控制器的 Windows Server 2008 中,已采用 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 注册表项的新默认值。 此新默认值为 48 小时。 此 48 小时值可以表示为以下任一值:
- 2a300 (十六进制)
- 172800 (十进制)
建议将MaxPosPhaseCorrection
MaxNegPhaseCorrection
注册表项设置为除以下值以外的值:
MAX (0xFFFFFFFF)
备注
将值设置为 MAX 以外的值(0xFFFFFFFF),可以阻止计算机采用在重启计算机或中断与外部时间源的连接时采用时间非常不准确的时间。 例如,假设在林中的所有域控制器上设置了 48 小时的 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 注册表项。 如果任一域控制器遇到超过 48 小时的异常时间跳跃,则为 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 注册表项设置的值将阻止其他计算机进行相同的跳转。 因此,无法同步的计算机可以与其他计算机分开,直到管理员能够调查并采取纠正措施。
时间准确性对于林根主域控制器(PDC)尤其重要。 由于 PDC 是域的根时间源,因此 PDC 上的时间更改不准确可能会导致域范围的时间跳跃。 如果对 PDC 施加阶段更正限制,则可以阻止林中的其他域控制器接受新时间。
默认值为 48 小时,而不是默认值为 5 分钟或 15 分钟,具体取决于以下原因:
- W32TM 实用工具的输出难以读取。
- W32TM 当前不针对成员计算机和成员服务器上的时间。
- Windows作系统和独立第三方应用程序日志的错误和事件高度不一致。 可能的错误包括如下所示的返回代码:
- 访问被拒绝
- RPC 服务器不可用
备注
这些错误与时间偏差的相关性较低,因为原因可能会阻止基于 Windows 的计算机采用准确的时间值。
- 夏令时 bug 可能会导致 1 小时时间差异。
- AM 或 PM 配置错误可能会导致 12 小时的时间差异。
- 日期或日期错误可能会导致 24 小时的时间差异。
因此,48 小时是 25 或 36 小时后的下一个明显时间偏移量。 管理员还可以使用报告基础结构和测试的正确工具来降低该值。
以下各节介绍了根据作系统版本和计算机角色的具体建议。
Windows 10、Windows Server 2012 及更高版本的 Windows
域服务器
林根 PDC (权威时间服务器)
强烈建议将权威时间服务器配置为从硬件源收集时间。 将权威时间服务器配置为与 Internet 时间源同步时,不会进行身份验证。 必须重新配置以下注册表项:
MaxPosPhaseCorrection
MaxNegPhaseCorrection
这两个注册表项的默认值为 2a300(十六进制)或 172800(十进制)。 此默认值表示“接受 48 小时内的时间更改”。建议将 MaxPollInterval 注册表项的值设置为 10 或更少,或者将 SpecialPollInterval 注册表项的值设置为 3600(1 小时)或更少。
域内的域控制器和成员服务器
MaxPosPhaseCorrection
MaxNegPhaseCorrection
和注册表项的域控制器的默认值为 2a300(十六进制)或 172800(十进制)。 此默认值表示“接受 48 小时内的时间更改”。在成员服务器上,默认值为0xFFFFFFFF。 还可以在运行基于时间敏感的应用程序的成员服务器上设置 48 小时值。
备注
有关这些注册表项的详细信息,请参阅 Windows 10、Windows Server 2012 和更高版本的 Windows 部分中的时间服务注册表项。
独立客户端
MaxPosPhaseCorrection
MaxNegPhaseCorrection
和注册表项的默认值为 54,000 (15 小时)。 作为安全最佳做法,我们建议你减少此默认值。 我们还建议将该值设置为 3600(1 小时)或更小的值,具体取决于时间源、网络条件、轮询间隔和安全要求。
Windows 10、Windows Server 2012 和更高版本的 Windows 中的时间服务注册表项
Type | 详细信息 |
---|---|
注册表项 | MaxPosPhaseCorrection |
值类型 | DWORD |
子项 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
注意 | 此条目指定服务可以进行的最大正时间更正(以秒为单位)。 如果服务确定更改大于所需更改,则会改为记录事件。 特殊情况:0xFFFFFFFF始终进行时间更正。 域成员的默认值为 0xFFFFFFFF。 独立客户端和服务器的默认值为 54,000 (15 小时)。 |
注册表项 | MaxNegPhaseCorrection |
值类型 | DWORD |
子项 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
注意 | 此条目指定服务可以进行的最大负时间更正(以秒为单位)。 如果服务确定需要进行大于此值的更改,它将改为记录一个事件。 特殊情况:-1 表示始终进行时间更正。 域成员的默认值为 0xFFFFFFFF。 独立客户端和服务器的默认值为 54,000 (15 小时)。 |
注册表项 | MaxPollInterval |
值类型 | DWORD |
子项 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
注意 | 此项指定为系统轮询间隔启用的最大间隔(以秒为单位)。 请注意,尽管系统必须根据计划的间隔轮询,但提供程序可以在请求样本时拒绝生成样本。 域成员的默认值为 10。 独立客户端和服务器的默认值为 15。 |
注册表项 | SpecialPollInterval |
值类型 | DWORD |
子项 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient |
注意 | 此项指定手动对等方的特殊轮询间隔(以秒为单位)。 启用 SpecialInterval 0x1 标志时,W32Time 使用此轮询间隔,而不是作系统确定的轮询间隔。 域成员的默认值为 3,600。 独立客户端和服务器的默认值为 604,800。 |
备注
建议使用全局策略对象编辑器部署这些设置。 有关基于 Windows Server 2012 林的 Windows 时间服务的详细信息,请参阅 Windows 时间服务(W32Time)。
组策略对象(GPO)中定义的默认 Windows 时间服务参数值可能与基于 Windows Server 2012 的域控制器注册表中定义的默认值不匹配。 使用 GPO 将 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 值部署到 Windows Server 2012 域控制器时,请确保 GPO 不会更改注册表中其他 Windows 时间服务参数的值。 其他 Windows 时间服务参数值可能还必须在 GPO 中更改,以匹配域控制器中的默认注册表值。
Windows Server 2012 及更高版本的 Windows 的所有版本
域服务器
林根 PDC (权威时间服务器)
强烈建议将权威时间服务器配置为从硬件源收集时间。 将权威时间服务器配置为与 Internet 时间源同步时,手动模式下没有身份验证。 建议每 24 小时将轮询间隔值设置为 1 小时。
域内的域控制器和成员服务器
同步类型为 NT5DS。 时间服务从域层次结构同步,时间服务接受所有时间更改。 由于 NT5DS 接受任何时间更改而不考虑时间偏移量,因此必须在时间同步子网中设置可靠的林根时间源。
备注
NT5DS 值指示从注册表项获取同步类型。