2009-01-08 73 views
7

我有幾臺服務器託管了GoGrid,並且每次重新啓動我的一臺雲服務器時,系統時鐘都不正確。服務器不是域的成員,所以我只是將操作系統設置爲與Internet時間服務器同步。這種情況每天只發生一次,我沒有看到重新啓動後自動發生這種情況的選項。所以我留下了寫一些代碼來爲我做。如何在啓動時同步計算機的時鐘?

我使用「w32tm/resync」命令創建了一個批處理文件,並計劃它在系統啓動時運行,但它不起作用,因爲批處理文件運行時網絡連接不可用。如何在OS完​​全加載並且網絡連接可用後使時間同步啓動?在計算機啓動後,我需要時間儘快正確,因此我的數據庫中的時間戳將是正確的。

+0

不是編程相關 – Xian 2009-01-08 21:38:49

回答

13

在Windows 2008上,任務計劃程序中有一個選項,允許您在任務運行之前等待網絡連接可用。在任務屬性對話框中,創建一個新的「At Startup」觸發器,並確保選中「已啓用」框。添加一個動作來運行你的批處理文件。最後,只有在網絡連接可用的情況下,添加條件才能啓動任務。然後我要求它在失敗的情況下重新啓動命令3次。這似乎很好。

在早期版本的Windows上,使用以下批處理文件內容重試同步命令,直至成功爲止,或重試次數過多。

REM *** Retry for up to 15 minutes (90 retries @ 10 seconds each) 
set retryCount=0 

:SyncStart 
if %retryCount == 90 goto SyncEnd 
set /A retryCount=retryCount + 1 

REM *** Resync the system clock 
w32tm /resync 
if errorlevel 1 goto SyncDelay 
if errorlevel 0 goto SyncEnd 

:SyncDelay 
REM *** If unsuccessful, delay 10 seconds, then retry 
choice /n /t:y,10>nul 
goto SyncStart 

:SyncEnd 
1

在登錄時運行的計劃任務可能嗎?

編輯:你可能想要在腳本中放置30秒左右,以允許網絡連接刷新。完全沒有讀你的問題的權利。

-1

發現這是半隨機的。爲Win 7 +新choice.exe語法插入一個10秒暫停

choice /N /T 10 /D y>nul 
0

打開終端(如管理員)並運行此命令:您的家用電腦上

使用此或沒有加入域
w32tm /resync

使用這個,如果你加入到域
net time /domain

如果您收到該服務尚未開始。 (0x80070426)錯誤,那麼這意味着您需要啓動Windows時間服務,稍等片刻,然後重試。

如果您得到一個計算機沒有重新同步,因爲沒有時間數據可用的錯誤,那麼你應該能夠再次嘗試,直到成功。

Windows 10: Synchronize Clock with an Internet Time Server in Windows 10