¿Cómo puedo verificar la configuración actual de NTP de un sistema?

65

Necesito verificar la configuración actual de NTP en algunos sistemas Windows. Idealmente, me gustaría poder hacer esto a través de la línea de comandos en lugar de navegar a través de las pantallas de configuración.

(Estoy trabajando en varias versiones diferentes del sistema operativo, y las pantallas de configuración tienden a no estar siempre en el mismo lugar en todas las versiones).

Espero encontrar un comando rápido y memorable que pueda insertar en una consola CMD para obtener el resultado. Sin embargo, un archivo por lotes que puedo llevar conmigo funcionará igual de bien.

Específicamente, necesito lo siguiente:

  • Muestra si el sistema está configurado o no para recibir tiempo de un servidor NTP.
  • Muestra los servidores NTP desde los que el sistema recibe el tiempo.
  • Muestra la hora de la última sincronización.
  • Mostrar la hora actual en el sistema.

¿Qué comando (s) serían necesarios para lograr estos resultados?

Buscando una solución que sea compatible con Windows XP, 7, Server 2003 y Server 2008.

Iszi
fuente
Sé comprobar el tiempo que puede hacer "net time \\ computername" para obtener el tiempo de la PC remota. Sin embargo, no creo que el tiempo de red le permita ver la última sincronización ... sin embargo, "¿tiempo de red?" ofrece una opción establecida, por lo que es como la mitad de lo que estás buscando.
Supercereal
@Kyle Me acabo de dar cuenta de que net time /querysntpmuestra el servidor. Obtener el resto podría ser complicado.
Iszi
3
En Windows 7 net time / querysntp ha quedado en desuso.
Daniel

Respuestas:

82

En la línea de comando, escriba

w32tm /query /configuration
w32tm /query /status
Time /T 

w32tm /query /configuration le da la configuración que ha configurado.

w32tm /query /status le brinda información como:

  • estrato
  • indicador de salto
  • precisión
  • última sincronización
  • Servidor NTP
  • intervalo de encuesta

time /T da salida a la hora actual del sistema.

Nota: w32tm /queryse puso a disposición por primera vez en las versiones de cliente de Windows Time de Windows Vista y Windows Server 2008. Consulte Configuración y herramientas del servicio de hora de Windows

Phillip R.
fuente
55
No es bueno en XP. "El comando / consulta es desconocido".
Iszi
¿Cuál es la diferencia time /ty el tiempo que se muestra en la parte inferior derecha de la barra de tareas?
Pacerier
Para el primero, w32tm /query /configuration, consigo "Se ha producido el siguiente error: Acceso denegado (0x80070005)." . Creo que tengo suficientes derechos.
Peter Mortensen
3
Debe estar en una ventana de comando elevada para ese.
Phillip R.
16

Esto responde a tu última pregunta:

Abra un símbolo del sistema y escriba exactamente:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (cuantas devoluciones quieres)

Devuelve la hora y la diferencia a la hora del servidor NTP. Si devuelve el tiempo, error: 0x80072746, entonces ese no es su servidor NTP.

A continuación se muestra un ejemplo de un comando:

Ejemplo de comando

Byron
fuente
¿Puedes por favor formatear esta respuesta?
Ramhound
La forma en que se auto formatea es extraña. Han modificado
Byron
8

Lo intenté:

w32tm /query /status

Tengo:

The command /query is unknown.

En una máquina diferente, obtuve:

The following error occurred: The service has not been started. (0x80070426)

Entonces intenté:

reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time

Tengo:

ERROR: The system was unable to find the specified registry key or value.

Entonces intenté:

net time /querysntp

Tengo:

This computer is not currently configured to use a specific SNTP server.

En otra máquina, recibí la página de ayuda, diciendo también:

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.

Entonces, básicamente, el servicio no se estaba ejecutando. Siguiendo estas instrucciones, hice:

w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time

Finalmente, todo lo anterior funcionaría. (nota: si net startfalla, vea a continuación) Entonces solo necesitaba configurar mi ntp ... Lo hice con:

w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update

siguiendo las instrucciones de aquí , pero tal vez podría haber sido tan fácil como:

net time /setsntp:10.0.0.5

como se indica aquí . (10.0.0.5 es mi servidor NTP local). Si no está usando un servidor NTP local, puede usar el genérico:

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update

Finalmente, es posible que deba hacer lo siguiente, que no fue necesario para mí:

w32tm /config /update
w32tm /resync /rediscover

NOTA: si net start w32timefalla con el error 1290 (el inicio del servicio falló ya que uno o más servicios en el mismo proceso tienen una configuración de tipo SID de servicio incompatible), siga los pasos aquí :

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time

Luego siga como se indica arriba.


NOTA 2: si el servicio NTP no se inicia automáticamente al reiniciar, podría deberse a su configuración de inicio, como se describe aquí : según sus ventanas, puede configurarse para iniciarse solo cuando se une a un dominio. Puedes consultar con:

sc qtriggerinfo w32time

Si está configurado para iniciarse cuando se une a un dominio, y no tiene un dominio configurado en su máquina, no iniciará el servicio y establecerá la hora. Probablemente no se una a un dominio porque no quieres que lo haga. En cualquier caso, simplemente cambie qué disparador lo inicia. Por ejemplo, para comenzar cuando la máquina tiene red (y, por lo tanto, puede acceder al servidor), haga lo siguiente:

sc triggerinfo w32time start/networkon stop/networkoff
msb
fuente
3

Desde la línea de comando puede obtener la información de esta manera:

reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
reg QUERY [\\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config

Parece que eso debería ser suficiente al menos para avanzar en esa dirección, es decir, si entendí tu pregunta. AFAIK, el comando 'reg' funciona en todas estas plataformas diferentes siempre que tenga los servicios correctos en ejecución.

osirisgothra
fuente
Obtuve: "ERROR: el sistema no pudo encontrar la clave o valor de registro especificado". Resulta que W32Time no se inició ...
msb
Entonces " [\\machine\]" significa que se puede omitir si está en la misma máquina.
Peter Mortensen
2

Echa un vistazo a la w32tmherramienta de línea de comandos. Puede establecer y consultar la configuración e informar un / stripchart del desplazamiento de tiempo con otra computadora.

uSlackr
fuente
1
La /queryopción no está disponible en XP.
Iszi
55
Tratar net time /querysntp.
Fran
1
@Fran Eso funciona. Esperaba obtener un comando multiplataforma, pero parece que podría tener que usar dos diferentes, o escribir un archivo por lotes que incluye detección de plataforma para determinar qué comando (s) ejecutar.
Iszi
1
@lszi En mis scripts, pruebo la existencia de C: \ users. Si encuentro esa carpeta, sé que estoy en un cuadro posterior a XP.
Fran
1
@Fran ¿Podría escribir su propia respuesta que incluya ambos comandos? Además, ¿qué comando usaría para verificar el último tiempo de sincronización exitoso para XP?
Iszi