不知出了什麼問題,我的電腦的時間從來不會自動和 NTP 伺服器同步,雖然短期內並不會對使用造成什麼影響,但倘若放任不管,時鐘的偏移量太多,則可能會造成 SSL 和 TOTP 等依賴時間戳的應用出現問題,再者,手動按同步鍵也很不方便,今天我決定必須要解決這個問題。
SpecialPollInterval
在網上搜尋一番之後,我發現有人提到SpecialPollInterval這個鍵值,其具體位置是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient,微軟官方文件對其的描述如下:
This entry specifies the special poll interval in seconds for manual peers. When the SpecialInterval 0x1 flag is enabled, W32Time uses this poll interval instead of a poll interval determine by the operating system. The default value on domain members is 3,600. The default value on stand-alone clients and servers is 604,800.
對於一般客户端,這個鍵值的預設值是604800,也就是一個星期同步一次,這個間隔顯然太久,於是我將其設定成了3600令其一小時同步一次。
w32tm
幾天後,當我再次檢查時間時,卻發現時間仍然沒有自動同步,這一次的偏移量已經達到了 15.8 秒。

於是查詢「SpecialPollInterval」想要知道其具體的作用和未及預期目的的原因,卻發現了微軟的一篇疑難解答。這篇疑難解答指出:「每次客户端輪詢時間樣本到 NTP 伺服器時,NTP 客户端都會進入 SPIKE 狀態。 時間服務管理其內部狀態,如果客户端進入 SPIKE 狀態,則客户端不會同步其時間。」
為了解決這個問題,需要將 Windows 時間配置為使用 MinPollInterval/MaxPollInterval 作為輪詢間隔。
| |
服務尚未啓動
執行這一行配置時出現了「服務尚未啓動」的提示,這説明用於時間同步的服務根本沒有啓動。如此基礎的服務竟然不會自動開機啓動,我也不知道這是 Windows 的 Bug 還是我後期使用無意間製造的問題,不管怎樣,首先啓動這個服務:
| |
隨後 Win + R 執行services.msc開啓服務管理面板,找到「Windows Time」服務,將其啓動型別設定為「自動」,即可讓其開機自動啓動。

再次重新啓動電腦,這次開啓「設定」–>「時間和語言」–>「日期和時間」–>「附加時鐘」,切換到「Internet 時間」選項卡,如果出現了「下次同步」的字樣,説明這套系統終於是正常運作了。

評論已停用,直到您接受功能性 Cookie。