一鍵同步時間腳本


電腦沒電會導致時間丟失,為了方便同步時間,寫了一個腳本

可以把它放在啟動項里,或者用觸發器,實現開機自動同步

對於同步時間,Windows有一個限制,默認的最大時間差是15小時,所以需要在注冊表里修改2個值。

如果不修改注冊表,可能會有如下提示:

此計算機沒有重新同步,因為要求的時間更改太大。

路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注冊表項:

MaxNegPhaseCorrection 改為 0xFFFFFFFF(盡可能大)

MaxPosPhaseCorrection 改為 0xFFFFFFFF(盡可能大)

MaxNegPhaseCorrection這個代表慢於NTP服務器的時間,如果本地時間超過NTP服務器MaxNegPhaseCorrection秒,就不同步
MaxPosPhaseCorrection這個代表快於NTP服務器的時間,如果本地時間超過NTP服務器MaxPosPhaseCorrection秒,就不同步

用如下兩個命令修改注冊表項:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 999999999 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 999999999 /f

修改注冊表

reg add "路徑" /v 變量 /t 數據類型 /d 數值 /f

/v 設置鍵名(value)
/t 設置數據類型(type)
/d 設置添加的值(data)
/f 表示強制(forbidden)

重置時間服務的注冊表參數

w32tm /unregister 取消時間服務的注冊
net stop w32time 停止時間服務

在注冊表注冊時間服務

w32tm /register

開啟時間服務

net start w32time

同步時間命令

w32tm /resync

有時候一次不能成功,提示沒有可用數據,可以再加一條語句確保成功率

經過多次測試,以下代碼的語句缺一不可。

粘貼到bat可以直接運行:

(可能需要用管理員權限打開)

w32tm /unregister
net stop w32time
w32tm /register
net start w32time
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 999999999 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 999999999 /f
net stop w32time
net start w32time
w32tm /resync
w32tm /resync

效果:

同步前

同步后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM