不知出了什麼問題,我的電腦的時間從來不會自動和 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。