Windows ntp時間同步設定(bat指令碼)

璐程風發表於2020-10-26

來源:收錄並測試通過

檔案取名:Windows_NTP.bat

作用:通過修改登錄檔項來配置NTP時間同步地址

適合:windows2008--windows2016

指令碼型別:.bat

指令碼內容:

@echo off
color 0a
title Windows伺服器NTP配置
:: 如果無設定DNS的,要在C:\Windows\System32\drivers\etc\hosts新增域名解析記錄
:: 部分主機沒有配置內網DNS,需要在內部DNS伺服器新增NTP 伺服器ntp.al8.cn.com 正反向解析。
:: 修正windows 2008 -windows 2012 R2系統預設windows time服務不自動啟動問題
:: ######################################################
echo 【開始自動配置Windows伺服器NTP地址為ntp.shenzhenair.com,請稍後.........】
echo=
@Rem 啟用並重新配置NTP時間伺服器為:ntp.ald8.cn
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /f /v 0 /t REG_SZ /d "ntp.ald8.cn"
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /f /t REG_SZ /d "0"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" /v NtpServer /t REG_SZ /d ntp.shenzhenair.com,0x9 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters" /v Type /t REG_SZ /d NTP /f
echo 禁用本機對外提供NTP時間伺服器。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer" /v Enabled /t REG_DWORD /d 0x00000000 /f
echo 啟用本機NtpClient提供程式,以和外部NTP進行同步。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient" /v Enabled /t REG_DWORD /d 0x00000001 /f
echo 該設定宣佈或授權本伺服器不作為NTP對外時間伺服器。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config" /v AnnounceFlags /t REG_DWORD /d 0x00000000 /f
echo 設定本機和NTP伺服器時間同步週期為10小時(36000秒)
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 0x00008ca0 /f
:: 根據windows系統版本不同,開始做不同配置
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j

if "%version%" == "6.0" (
echo.
echo 當前系統是:Windows Server 2008.
echo 刪除預設w32time服務註冊時預設觸發器事件....
sc triggerinfo w32time delete
echo 設定w32time服務觸發器為網路可用時就開啟和關閉.......
sc triggerinfo w32time start/networkon stop/networkoff
echo 設定windows time服務為延遲啟動啟動.....
sc config w32time start= delayed-auto
echo.
) else if "%version%" == "6.1" (
echo.
echo 當前系統是:Windows Server 2008 R2. 
echo 刪除預設w32time服務註冊時預設觸發器事件....
sc triggerinfo w32time delete
echo 設定w32time服務觸發器為網路可用時就開啟和關閉.......
sc triggerinfo w32time start/networkon stop/networkoff
echo 設定windows time服務為延遲啟動啟動.....
sc config w32time start= delayed-auto
echo.
) else if "%version%" == "6.2"  (
echo.
echo 當前系統是:Windows Server 2012.
echo 刪除預設w32time服務註冊時預設觸發器事件....
sc triggerinfo w32time delete
echo 設定w32time服務觸發器為網路可用時就開啟和關閉.......
sc triggerinfo w32time start/networkon stop/networkoff
echo 設定windows time服務為延遲啟動啟動.....
sc config w32time start= delayed-auto
echo.

) else if "%version%" == "6.3" (
echo.
echo 當前系統是:Windows Server 2012 R2. 
echo 刪除預設w32time服務註冊時預設觸發器事件....
sc triggerinfo w32time delete
echo 設定w32time服務觸發器為網路可用時就開啟和關閉.......
sc triggerinfo w32time start/networkon stop/networkoff
echo 設定windows time服務為延遲啟動啟動.....
sc config w32time start= delayed-auto
echo.

) else if "%version%" == "10.0" (
echo 當前系統是:Windows Server 2016. 
echo 設定windows time服務為延遲啟動啟動.....
sc config w32time start= delayed-auto

)
echo.
@REM 重啟NTP服務並同步
gpupdate /force
net stop w32Time
net start w32Time
w32tm /config /update
w32tm /resync 
echo 正在重啟系統NTP服務和重新同步,請稍後.......
echo=
echo 當前系統NTP源地址:
w32tm /query /source 
echo=
echo=
echo 當前系統NTP服務執行情況:
w32tm /resync 
w32tm /query /status
w32tm /query /status /verbose
w32tm /query /peers
echo=
echo=
TYPE C:\WINDOWS\system32\drivers\etc\hosts
echo 【NTP服務配置完成,部分伺服器可能需要重啟系統後生效】
echo=
echo 刪除源指令碼檔案
del /F /S /Q C:\Users\Administrator\Desktop\Windows_NTP.bat

 

 

相關文章