Comprobar si la hora de nuestro equipo va adelantada o atrasada, solucionar problemas en Active Directory con la sincronización horaria

Para comprobar la hora de un equipo podemos utilizar el comando:

w32tm /stripchart /computer:time.windows.com /dataonly

Con + indicará que vamos adelantados, con – que la hora está atrasada xx segundos.

Para ver el origen de la hora en el sistema podemos ejecutar:

w32tm /query /source

Para sincronizar nuestro equipo/servidor con un servicio online de hora:

w32tm /resync /computer:time.windows.com /nowait

Aunque puede dar error por cuestiones de firewall, etc.

Primero necesitamos saber cual de nuestros servidores es nuestro PDC (Primary Domain Controller) ya que el resto de equipos y servidores sincronizarán la hora con éste, para ello ejecutaremos el comando:

nltest /dclist:nombrededominio

Uno de los servidores tendrá la etiqueta [PDC]

Nos conectamos y cambiamos la hora, o la sincronizamos con un servidor.

Podemos ejecutar en los clientes:

w32tm /resync

Para forzar una sincronización.

Un modificador muy interesante que muestra si algún servidor se está sincronizando con otra máquina es:

w32tm /monitor

Puede mostrar cosas tan curiosas como esta:

Observamos que un servidor se está sincronizando con una máquina en una zona horaria distina. LOCL es el reloj físico de la placa del equipo.

Además, puede ocurrir que el servidor de “Hora de Windows” aparezca como deshabilitado, no podamos arracarlo porque indique que está marcado para borrado.

En este caso ejecutar en cmd:

w32tm /debug /disable

w32tm /unregister

Si da error volver a ejecutarlo, y seguir:

w32tm /unregister 

w32tm /register

net start w32time

 

Y debería aparecer el mensaje que indica que el servicio está arrancando, y ya no dará el error que indica que ha sido marcado para ser eliminado, etc.

 

Y si queremos forzar un servidor en concreto para la sincronización NTP:

w32tm /config /manualpeerlist:es.pool.ntp.org,0x1 /syncfromflags:manual /reliable:yes /update