2009-01-08 20 views
7

Tengo varios servidores alojados con GoGrid, y cada vez que reinicio uno de mis servidores en la nube, el reloj del sistema es incorrecto. El servidor no es miembro de un dominio, por lo que el sistema operativo se ha sincronizado con un servidor de hora de Internet. Esto solo ocurre una vez al día, y no veo una opción para que esto suceda automáticamente al reiniciar. Así que me queda escribir algún código para hacerlo por mí.¿Cómo puedo sincronizar el reloj de la computadora al inicio?

Creé un archivo por lotes con el comando "w32tm/resync" y programé que se ejecutara al iniciar el sistema, pero no funciona porque la conexión de red no está disponible cuando se ejecuta el archivo por lotes. ¿Cómo puedo hacer que la sincronización de tiempo comience después de que el sistema operativo esté completamente cargado y la conexión de red esté disponible? Necesito tiempo para ser correcto lo antes posible después de que la computadora arranque, por lo que las marcas de tiempo en mi base de datos serán correctas.

+0

No es la programación relacionada – Xian

+0

autoexec.bat :) (no funcionará en las últimas versiones de Windows) –

+5

Es, en realidad.Si miras su respuesta, está intentando descubrir cómo escribir un archivo por lotes para hacerlo. – ine

Respuesta

13

En Windows 2008, hay una opción en el Programador de tareas que le permitirá esperar hasta que haya una conexión de red disponible antes de ejecutar la tarea. En el cuadro de diálogo de propiedades de la tarea, cree un nuevo activador "Al inicio" y asegúrese de marcar la casilla "Activado". Agregue una acción para ejecutar su archivo por lotes. Finalmente, agregue una condición para comenzar la tarea solo si la conexión de red está disponible. Luego le pedí que reiniciara el comando hasta 3 veces si fallaba. Eso parece funcionar bien.

En las versiones anteriores de Windows, utilice el siguiente contenido del archivo por lotes para volver a intentar el comando de sincronización hasta que tenga éxito o hasta que lo haya reintentado demasiadas veces.

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

tarea programada que se ejecuta en el inicio de sesión tal vez?

EDITAR: es posible que desee mantener una espera de 30 segundos en la secuencia de comandos para permitir que las conexiones de red se actualicen. Totalmente no leí tu pregunta correctamente.

-1

Encontrado esto semi-aleatoriamente. Choice.exe nueva sintaxis para Win 7 + para insertar una pausa de 10 segundos

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

Abrir un terminal (como administrador) y ejecutar este comando:

Utilice esta en su ordenador personal o no se unió al dominio
w32tm /resync

Usar esta opción si está unido al dominio
net time /domain

Si obtiene un El servicio no se ha iniciado. (0x80070426) error, significa que debe iniciar el servicio de hora de Windows, espere un minuto y vuelva a intentarlo.

Si obtiene un La computadora no resincronizó porque no había datos de tiempo disponibles, entonces debería poder intentar nuevamente hasta que tenga éxito.

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

Cuestiones relacionadas