Comment puis-je vérifier la configuration NTP actuelle d'un système?


65

Je dois vérifier la configuration NTP actuelle sur certains systèmes Windows. Idéalement, j'aimerais pouvoir le faire via une ligne de commande au lieu de naviguer dans les écrans de configuration.

(Je travaille sur plusieurs versions de système d'exploitation et les écrans de configuration ont tendance à ne pas toujours se trouver au même endroit d'une version à l'autre.)

J'espère trouver une commande rapide et mémorable que je ne peux que pointer dans une console CMD pour obtenir le résultat. Un fichier batch que je peux emporter avec moi fera tout aussi bien l'affaire.

Plus précisément, j'ai besoin des éléments suivants:

  • Indique si le système est configuré pour recevoir l'heure d'un serveur NTP.
  • Affiche le ou les serveurs NTP dont le système reçoit l'heure.
  • Affiche l'heure de la dernière synchronisation.
  • Affiche l'heure actuelle sur le système.

Quelle commande serait nécessaire pour atteindre ces résultats?

Vous recherchez une solution compatible avec Windows XP, 7, Server 2003 et Server 2008.


Je sais pour vérifier l'heure, vous pouvez faire "net time \\ computername" pour obtenir l'heure du PC à distance. Je ne pense pas que le temps net vous permette d’afficher la dernière synchronisation, mais «temps net? donne une option fixe, donc c'est comme la moitié de ce que vous cherchez.
Supercereal

@Kyle Je viens de comprendre que net time /querysntpmontre le serveur. Obtenir le reste pourrait être délicat.
Iszi

3
Dans Windows 7, net time / querysntp était obsolète.
Daniel

Réponses:


82

Dans la ligne de commande, tapez

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

w32tm /query /configuration vous donne la configuration que vous avez configurée.

w32tm /query /status vous donne des informations telles que:

  • strate
  • indicateur de saut
  • précision
  • dernière synchronisation
  • Serveur NTP
  • Intervalle de sondage

time /T affiche l'heure système actuelle.

Remarque: w32tm /querya d'abord été mis à disposition dans les versions du client Windows Time de Windows Vista et Windows Server 2008. Voir Paramètres et outils du service Windows


5
Pas bon sur XP. "La commande / requête est inconnue."
Iszi

Quelle est la différence entre time /tet l'heure indiquée en bas à droite de la barre des tâches?
Pacerier

Pour le premier, w32tm /query /configurationj'obtiens "L'erreur suivante s'est produite: L'accès est refusé. (0x80070005)" . Je pense avoir assez de droits.
Peter Mortensen

3
Vous devez être dans une fenêtre de commande élevée pour celle-là.
Phillip R.

16

Ceci répond à votre dernière question:

Ouvrez une invite de commande et tapez exactement:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (combien de retours vous voulez)

Il renvoie l'heure et la différence à l'heure du serveur NTP. S'il renvoie l'heure, erreur: 0x80072746, alors ce n'est pas votre serveur NTP.

Un exemple de commande est ci-dessous:

Exemple de commande


Pouvez-vous formater cette réponse?
Ramhound

La façon dont il s'auto-formate est étrange. Ont modifié
Byron

8

J'ai essayé:

w32tm /query /status

J'ai eu:

The command /query is unknown.

Dans une machine différente, j'ai eu:

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

Puis j'ai essayé:

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

J'ai eu:

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

Puis j'ai essayé:

net time /querysntp

J'ai eu:

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

Sur une autre machine, j'ai eu la page d'aide, disant aussi

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

Donc, fondamentalement, le service ne fonctionnait pas. En suivant ces instructions, j'ai fait:

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

Enfin, tout ce qui précède fonctionnerait. (note: si net startéchoue, voir ci-dessous) Il me suffisait alors de configurer mon ntp ... Je l'ai fait avec:

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

suivre les instructions d' ici , mais peut-être aurait-il été aussi simple que:

net time /setsntp:10.0.0.5

comme indiqué ici . (10.0.0.5 étant mon serveur NTP local). Si vous n'utilisez pas de serveur NTP local, vous pouvez utiliser le serveur générique:

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

Enfin, vous pourriez avoir besoin de faire ce qui suit, ce qui n’était pas nécessaire pour moi:

w32tm /config /update
w32tm /resync /rediscover

REMARQUE: si net start w32timeéchoue avec l' erreur 1290 (Le service a échoué depuis une start ou plusieurs services dans le même processus ont un paramètre de type SID de service incompatible) puis suivez les étapes ici :

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

Puis suivez comme ci-dessus.


REMARQUE 2: si le service NTP ne démarre pas automatiquement au redémarrage, cela peut être dû à ses paramètres de démarrage, comme décrit ci - dessous : en fonction de vos fenêtres, il peut être configuré pour ne démarrer que lorsqu'il rejoint un domaine. Vous pouvez vérifier avec:

sc qtriggerinfo w32time

S'il est configuré pour démarrer lorsque vous rejoignez un domaine et que vous n'avez pas de domaine configuré sur votre ordinateur, le service ne sera pas démarré et l'heure ne sera pas réglée. Il ne rejoint probablement pas un domaine car vous ne le souhaitez pas. Dans tous les cas, il suffit de changer le déclencheur qui le déclenche. Par exemple, pour démarrer lorsque la machine dispose d'un réseau (et peut donc accéder au serveur), procédez comme suit:

sc triggerinfo w32time start/networkon stop/networkoff


3

En ligne de commande, vous pouvez obtenir les informations suivantes:

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

On dirait que cela devrait au moins suffire à aller dans cette direction, c'est-à-dire si j'ai bien compris votre question. Autant que je sache, la commande 'reg' fonctionne sur toutes ces plateformes tant que les services appropriés sont en cours d'exécution.


J'ai eu: "ERREUR: le système n'a pas pu trouver la clé de registre spécifiée ou la valeur." Il s'avère que W32Time n’a pas été démarré ...
msb

Donc " [\\machine\]" signifie qu'il peut être omis si sur la même machine?
Peter Mortensen

2

Examinez l' w32tmoutil de ligne de commande. Il peut définir et interroger la configuration et signaler un diagramme / strip du décalage temporel avec un autre ordinateur.


1
L' /queryoption n'est pas disponible sur XP.
Iszi

5
Essayez net time /querysntp.
Fran

1
@Fran Cela fonctionne. J'espérais obtenir une commande multiplate-forme, mais il semblerait que je devrais en utiliser deux différentes ou écrire un fichier de traitement par lots incluant la détection de plate-forme pour déterminer la ou les commandes à exécuter.
Iszi

1
@lszi Dans mes scripts, je teste l'existence de C: \ utilisateurs. Si je trouve ce dossier, je sais que je suis sur une boîte post-XP.
Fran

1
@Fran Pourriez-vous écrire votre propre réponse qui inclut les deux commandes? En outre, quelle commande utiliserais-je pour vérifier la dernière heure de synchronisation réussie pour XP?
Iszi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.