web-dev-qa-db-fra.com

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

Je dois vérifier la configuration actuelle de NTP 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.
  • Affichez 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.

60
Iszi

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 /query a été rendu disponible pour la première fois dans les versions du client Windows Time de Windows Vista et Windows Server 2008. Voir Paramètres et outils du service Windows

76
Phillip R.

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 à NTP heure du serveur. S'il renvoie l'heure, erreur: 0x80072746, ce n'est pas votre serveur NTP.

Un exemple de commande est ci-dessous:

 Command example

15
Byron

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 de 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 local NTP, 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 démarrage du service a échoué puisqu'un ou plusieurs services du même processus ont un paramètre de type SID de service incompatible), 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 ici : en fonction de vos fenêtres, il peut être configuré pour ne démarrer que quand 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
7
msb

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.

3
osirisgothra

Utilisation:

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org"
net start w32time
w32tm /config /update
w32tm /resync /rediscover

Un exemple de fichier .bat se trouve à https://Gist.github.com/thedom85/dbeb58627adfb3d5c3af .

Je recommande également ce programme: http://www.timesynctool.com/

3
user565386

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

2
uSlackr