Wie kann ich die aktuelle NTP-Konfiguration eines Systems überprüfen?


65

Ich muss die aktuelle NTP-Konfiguration auf einigen Windows-Systemen überprüfen. Idealerweise möchte ich dies über die Befehlszeile tun können, anstatt durch die Konfigurationsbildschirme zu navigieren.

(Ich arbeite an mehreren verschiedenen Betriebssystemversionen, und die Konfigurationsbildschirme befinden sich in den verschiedenen Versionen in der Regel nicht immer am selben Ort.)

Ich hoffe, einen schnellen, einprägsamen Befehl zu finden, den ich einfach in eine CMD-Konsole eingeben kann, um das Ergebnis zu erhalten. Eine Batch-Datei, die ich mit mir herumtragen kann, reicht jedoch genauso gut aus.

Im Einzelnen brauche ich Folgendes:

  • Zeigen Sie an, ob das System so konfiguriert ist, dass es Zeit von einem NTP-Server empfängt.
  • Zeigen Sie die NTP-Server an, von denen das System Zeit empfängt.
  • Zeigt die Uhrzeit der letzten Synchronisation an.
  • Zeigt die aktuelle Uhrzeit im System an.

Welche Befehle wären erforderlich, um diese Ergebnisse zu erzielen?

Suchen Sie nach einer Lösung, die mit Windows XP, 7, Server 2003 und Server 2008 kompatibel ist.


Ich weiß, um die Uhrzeit zu überprüfen, können Sie "net time \\ computername" ausführen, um die Uhrzeit des Remote-PCs abzurufen. Ich glaube nicht, dass Sie mit der Nettozeit die letzte Synchronisierung anzeigen können ... jedoch "Nettozeit?" Gibt eine festgelegte Option, so dass es ungefähr die Hälfte dessen ist, wonach Sie suchen.
Supercereal

@ Kyle Ich habe gerade herausgefunden, dass net time /querysntpder Server zeigt. Den Rest zu bekommen, könnte schwierig sein.
Iszi

3
In Windows 7 ist net time / querysntp veraltet.
Daniel

Antworten:


82

Geben Sie in der Befehlszeile Folgendes ein

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

w32tm /query /configuration gibt Ihnen die Konfiguration, die Sie eingerichtet haben.

w32tm /query /status gibt Ihnen Informationen wie:

  • Schicht
  • Sprunganzeige
  • Präzision
  • Letzte Synchronisierung
  • NTP-Server
  • Abfrageintervall

time /T gibt die aktuelle Systemzeit aus.

Hinweis: w32tm /queryWurde erstmals in den Windows Time Client-Versionen von Windows Vista und Windows Server 2008 zur Verfügung gestellt. Siehe Windows Time Service-Tools und -Einstellungen


5
Unter XP nicht gut. "Der Befehl / die Abfrage ist unbekannt."
Iszi

Was ist der Unterschied zwischen time /tund der Uhrzeit, die rechts unten in der Taskleiste angezeigt wird?
Pacerier

Beim ersten Mal w32tm /query /configurationerhalte ich die Meldung "Der folgende Fehler ist aufgetreten: Zugriff verweigert. (0x80070005)" . Ich glaube, ich habe genug Rechte.
Peter Mortensen

3
Sie müssen sich dafür in einem erhöhten Befehlsfenster befinden.
Phillip R.

16

Dies beantwortet Ihre letzte Frage:

Öffnen Sie eine Eingabeaufforderung und geben Sie genau Folgendes ein:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (wie viele Retouren Sie wollen)

Zeit und Differenz zur NTP-Serverzeit werden zurückgegeben. Wenn es Zeit zurückgibt, Fehler: 0x80072746, dann ist das nicht Ihr NTP-Server.

Ein Beispiel für einen Befehl ist unten:

Befehlsbeispiel


Können Sie diese Antwort bitte formatieren?
Ramhound

Die Art und Weise, wie es sich selbst formatiert, ist seltsam. Haben geändert
Byron

8

Ich habe es versucht:

w32tm /query /status

Ich habe:

The command /query is unknown.

In einer anderen Maschine habe ich:

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

Dann habe ich versucht:

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

Ich habe:

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

Dann habe ich versucht:

net time /querysntp

Ich habe:

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

Auf einer anderen Maschine habe ich die Hilfeseite erhalten, auf der auch steht:

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

Im Grunde lief der Dienst also nicht. Nach diesen Anweisungen habe ich:

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

Schließlich würde das alles funktionieren. (Hinweis: Wenn dies net startfehlschlägt, siehe unten) Dann musste ich nur mein NTP einrichten ... Ich tat es mit:

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

Befolgen Sie die Anweisungen von hier aus , aber vielleicht war es so einfach wie:

net time /setsntp:10.0.0.5

wie hier angewiesen . (10.0.0.5 ist mein lokaler NTP-Server). Wenn Sie keinen lokalen NTP-Server verwenden, können Sie den allgemeinen Server verwenden:

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

Schließlich müssen Sie möglicherweise Folgendes tun, was für mich nicht erforderlich war:

w32tm /config /update
w32tm /resync /rediscover

ANMERKUNG: Wenn ein net start w32timeFehler mit Fehler 1290 auftritt (der Dienststart ist fehlgeschlagen, da mindestens ein Dienst im selben Prozess eine inkompatible Einstellung für den Dienst-SID-Typ aufweist), führen Sie die folgenden Schritte aus :

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

Folgen Sie dann wie oben.


ANMERKUNG 2: Wenn der NTP - Dienst nicht automatisch beim Neustart läuft, könnte es in seine Starteinstellungen zurückzuführen sein, wie hier : je nach Fenster, kann es eingestellt wird , nur zu starten , wenn es eine Domäne beitritt. Sie können überprüfen mit:

sc qtriggerinfo w32time

Wenn es so konfiguriert ist, dass es beim Beitritt zu einer Domäne gestartet wird und auf Ihrem Computer keine Domäne eingerichtet ist, wird der Dienst nicht gestartet und die Uhrzeit nicht festgelegt. Es tritt wahrscheinlich keiner Domain bei, weil Sie dies nicht möchten. In jedem Fall einfach ändern, welcher Trigger es startet. Um beispielsweise zu starten, wenn der Computer über ein Netzwerk verfügt (und daher auf den Server zugreifen kann), gehen Sie wie folgt vor:

sc triggerinfo w32time start/networkon stop/networkoff


3

Über die Befehlszeile können Sie die folgenden Informationen abrufen:

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

Scheint so, sollte zumindest ausreichen, um in diese Richtung zu gehen, wenn ich Ihre Frage verstehe. AFAIK, der Befehl 'reg' funktioniert auf all diesen verschiedenen Plattformen, solange die richtigen Dienste ausgeführt werden.


Ich habe: "FEHLER: Das System konnte den angegebenen Registrierungsschlüssel oder Wert nicht finden." Es stellte sich heraus, dass W32Time nicht gestartet wurde ...
msb

" [\\machine\]" Bedeutet also, dass es auf derselben Maschine weggelassen werden kann?
Peter Mortensen

2

Schauen Sie sich das w32tmKommandozeilen-Tool an. Es kann die Konfiguration einstellen und abfragen und ein / Stripchart des Zeitversatzes mit einem anderen Computer ausgeben.


1
Die /queryOption ist unter XP nicht verfügbar.
Iszi

5
Versuchen Sie es net time /querysntp.
Fran

1
@Fran Das funktioniert. Ich hatte gehofft, einen Befehl zu bekommen, der plattformübergreifend ist, aber es scheint, als müsste ich zwei verschiedene verwenden - oder eine Batch-Datei mit Plattformerkennung schreiben, um zu bestimmen, welche Befehle ausgeführt werden sollen.
Iszi

1
@lszi In meinen Skripten prüfe ich, ob C: \ users vorhanden sind. Wenn ich diesen Ordner finde, weiß ich, dass ich mich auf einer Post-XP-Box befinde.
Fran

1
@Fran Könnten Sie Ihre eigene Antwort schreiben, die beide Befehle enthält? Mit welchem ​​Befehl kann ich außerdem die letzte erfolgreiche Synchronisierungszeit für XP überprüfen?
Iszi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.