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

相关问题