¿Cómo forzo la sincronización de la hora en Windows Workstation o Server?

Respuestas:

81

Como dijo Kyle, w32tm /resynces la forma moderna de hacer esto. Consulte este Enlace a la Base de conocimiento de Microsoft (KB 307897) para obtener más información sobre el comando w32tm.

También hay net timeuna versión anterior pero quizás más fácil.

Seanchán Torpéist
fuente
44
w32tm /resyncdice "La computadora no se volvió a sincronizar porque el cambio de tiempo requerido era demasiado grande" como mi batería CMOS está agotada y el reloj de mi computadora se reinicia en cada arranque a 1/1/2000 12:00 AM. ¿Alguna ayuda?
Nunca salga el
Solución encontrada según blog.bruteforcetech.com/archives/911 , no olvide reiniciar el servicio W32Time y vuelva a net stop W32Timeintentarlow32tm /resync
Nunca salga el
1
El enlace está roto.
Stijn Sanders
2
@LightnessRacesinOrbit y los demás, si obtiene el error "el cambio de tiempo fue demasiado grande", úselo w32tm /resync /force. Pero si no tiene el servicio iniciado, ejecute net start w32time. Ambos de un aviso elevado.
cdlvcdlv
44
Para resolver 'el cambio de tiempo fue demasiado grande', cambie las entradas del registro MaxNegPhaseCorrection y MaxPosPhaseCorrection en HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config al máximo (ffffffff)
Tomas F.
37

Para aquellos que todavía hacen esta pregunta.

  1. Para actualizar, utilice el siguiente comando (compatible con el servidor 2008 y 2012)

    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
    

cambie el servidor ntp con su fuente

  1. Reiniciar el servicio horario

    net stop w32time
    net start w32time
    
  2. Resincroniza el tiempo

    w32tm /resync
    
  3. Verifica tu estado de sincronización

    w32tm /query /status
    

Los comandos anteriores deberían estar bien si sus fuentes funcionan correctamente y / o su conexión está bien (el firewall o Microsoft Forefront también pueden ser un problema). Los siguientes comandos pueden ayudar con la resolución de problemas

Para enumerar compañeros

w32tm /query /peers

Para enumerar las fuentes NTP:

w32tm /query /source
usuario3011708
fuente
Buena respuesta integral! Definir +1 para el comando para configurar el servidor NTP.
Shaamaan
Como nota, esto funciona para Windows 10 Professional sin el indicador "/ actualizar", ya que no es válido.
Fmstrat
Para la solución de problemas, a menudo es útil probar la conexión a un servidor específico:w32tm /monitor /computers:time.windows.com
Randy Orrison
24

Puede usar el siguiente comando:

w32tm /resync

Kyle Brandt
fuente
16

Puedes usar:

w32tm /resync

Además, el uso w32tm /resync /rediscovertambién "forzará la redetección de la red con recursos antes de la resincronización".

O usando:

net time /set

Le pedirá que configure la hora en DC. (Funciona para versiones anteriores de Windows)

Brett Larson
fuente
2
Por alguna razón w32tm /resyncno funcionó para mí, pero lo net time /SET /Yhizo. He utilizado /Ypara net time, ya que al parecer no lee la entrada estándar adecuadamente cuando salga a través de cygwin sshd.
qwertzguy
Al ejecutar w32tm /resync, recibí el mensaje The computer did not resync because no time data was available.incluso después de reiniciar el servicio, pero net time /SETfuncionó correctamente para mí.
Chris Magnuson el
3

SO: MS Windows 7

Todas las ideas anteriores han sido probadas pero no ayudaron. El problema original aún existe: " La computadora no se volvió a sincronizar porque el cambio de tiempo requerido era demasiado grande " .

La solución se encuentra en el registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • cambie esto si la hora local tiene prisa (por ejemplo, 31-dic-2050): MaxNegPhaseCorrection
  • cambie esto si la hora local se retrasa (por ejemplo, 1 de enero de 1980): MaxPosPhaseCorrection
  • Los valores predeterminados son 0xD2F0 (es decir, 54000 segundos = 15 horas)

(use Google para más detalles)

Yo uso este simple win_clock_sync.batarchivo del menú Inicio Inicio:

echo off
echo Sync computer time from internet
echo.
echo Back-up registry w32time\Config
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y
rem changing the registry keys temporarly:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
echo.
echo w32tm /config /update
w32tm /config /update
echo.
echo w32tm /resync /rediscover 
w32tm /resync /rediscover 
echo.
echo Restore registry w32time\Config
reg import exported_w32time.reg

¡Disfrutar! :-)

Akos
fuente
Su respuesta podría usar una explicación de la función de los valores MaxNegPhaseCorrectiony en MaxPosPhaseCorrectionlugar de sugerir que deberían deshabilitarse ciegamente. Eso es lo que hace este script al establecer sus datos en 0xFFFFFFFF .
Personificador Twisty
No puede ignorar el mensaje de error mencionado "La computadora no se volvió a sincronizar porque el cambio de hora requerido era demasiado grande". sin cambiar los datos en los valores MaxNegPhaseCorrection y MaxPosPhaseCorrection. ¿O encontraste alguna solución funcional al problema original? ¿Y por qué estás escribiendo "a ciegas"? Si se tomara un poco de tiempo para leer, podría ver la exportación e importación de los datos originales de estos valores, lo que está un poco lejos de hacer algo "a ciegas".
Akos
Debe hacer que esta secuencia de comandos cambie los valores a deshabilitados, fuerce una actualización y luego vuelva a cambiarlos a los valores recomendados.
Cory Knutson
Twisty tiene puntos válidos que no se centran realmente en el problema planteado por NeverQuit ... pero Akos no ha explicado claramente por qué el script es una solución adecuada para NeverQuit. En esencia, los valores del Registro MaxNegPhaseCorrection y MaxPosPhaseCorrection existen para evitar que el servicio W32Time aplique cambios dramáticos a la hora actual [en circunstancias como una fuente de tiempo externa que se torna muy mal] Sin embargo, si ocurre algún problema que lleva a un PDCe derivando rápidamente de un fuente de tiempo confiable, entonces los controles de corrección evitarán que w32tm arregle la gran deriva. En esta situación ::: b
Creaky_Uncle_Nick
@Akos Downvote se retractó en base a que usted señaló que su script realmente revierte los cambios en los valores MaxNegPhaseCorrectiony MaxPosPhaseCorrection. Todavía animo a incluir una explicación de lo que hacen estas dos configuraciones, ya que son una característica clave de su respuesta y es importante que un administrador tenga en cuenta que si establecen estas configuraciones permanentemente, configurarán su sistema para aceptar cualquier cambio de hora, No importa cuán grande sea, lo que podría romper Kerberos y otros servicios de red importantes.
Twisty Impersonator
2

Powershell one liner si el servidor ntp está configurado:

gsv w32time | sasv; w32tm /resync /force

Puede poner este archivo .bat en el inicio si falla la batería CMOS para que pueda volver a sincronizarse al iniciar el sistema operativo:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
majkinetor
fuente
/forceno es una opción de línea de comandos documentada para w32tm /resync.
Dai
0

Intenta en este orden. Funciona todo el tiempo

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync
Slayernoah
fuente
0

Casi ninguna de las soluciones (excepto @Akos) funciona si el host es un controlador de dominio de Active Directory de Windows Server 2016 (ADDC), ya que se trata a sí mismo como una fuente "confiable" que no puede hacer grandes cambios.

w32tm /resync /forceno funciona porque /forceno aparece en el servidor 2016.

net time /SET /Y tampoco funciona, porque habría preguntado:

¿Desea configurar la hora de la computadora local para que coincida con la hora \AD.example.net? (S / N) [S]

Por supuesto, no funcionará si estás encendido AD.example.net, /Ysolo oculta la pregunta.

Los pasos funcionan para mí usando PowerShell:

  1. Establezca el servicio w32time como poco confiable :
w32tm /config /reliable:no /syncfromflags:manual /update

La opción /syncfromflags:manualsignifica la sincronización con el NTP enumerado en la lista de pares (es decir, NTP externo), /updatepara notificar el servicio horario que la configuración ha cambiado.

  1. Reinicia el w32time
Stop-Service w32time
Start-Service w32time
  1. Sincronización
w32tm /resync

Esto debería funcionar.

  1. Si necesita ADDC como fuente de tiempo confiable, hágalo confiable nuevamente:
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time
Ding-Yi Chen
fuente
0

Tengo una imagen de Win10 que puedo restaurar en una instantánea donde este mensaje de error siempre es reproducible: "The computer did not resync because the required time change was too big."

He intentado escribir una solución a este problema sin resultado:

reg import nettime.reg # updates MaxPosPhaseOffset and MaxNegPhaseOffset

net start w32time
w32tm.exe /config /manualpeerlist:"pool.ntp.org",0x8 /syncfromflags:manual /reliable:no /update  
w32tm.exe /query /configuration
w32tm.exe /resync /rediscover
w32tm.exe /resync /force

Ni la configuración /reliable:noni la MaxPosPhaseCorrection, ni ningún otro comando indicado aquí funcionaron inmediatamente de manera reproducible.

Después de actualizar el registro, iniciar el servicio, actualizar la configuración y nuevamente reiniciar el servicio, aún tuve que esperar muchos minutos antes de w32tm /resync /rediscovertener éxito.

La sincronización del tiempo finalmente tiene éxito, pero no de manera oportuna y confiable.

Comotion
fuente