Windows时间同步,时间差太大是无法自动更新时间的,这个界限是15小时,这也是防止时间跳变大引起系统异常。但是在很多情景下我们要求强制更新,比如说终端主板电池失效或者故障,导致每次重启都复位至某一较早年份,即使有NTP服务器也不能同步时间,岂不是很郁闷。
查微软资料发现,这个问题可以解决,可以在注册表中配置参数。只是微软的说法不太通俗,不易搜索到。
以下是 Windows Server 2003 和 Windows XP 时间服务注册表项
注册表项 | MaxPosPhaseCorrection |
路径 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
注释 | 该项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。特殊情况:0xFFFFFFFF 表示总是校准时间。域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000(15 小时)。 |
注册表项 | MaxNegPhaseCorrection |
路径 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
注释 | 该项指定服务可进行的最大负时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将转而记录一个事件。特殊情况:-1 表示总是校准时间。域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000(15 小时)。 |
看了上表,我们就有答案了,只要把这2个键值修改为0xFFFFFFFF就可以在任何时间差时同步时间了。在winxp上实测有效。win10似乎不受这个影响。
参考资料:配置 Windows 时间服务以防出现大的时间偏移
我的另一篇时间同步相关的: