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:
Quelle commande serait nécessaire pour atteindre ces résultats?
Vous recherchez une solution compatible avec Windows XP, 7, Server 2003 et Server 2008.
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:
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
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:
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
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.
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/
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.