Jak mogę sprawdzić bieżącą konfigurację NTP systemu?

65

Muszę zweryfikować bieżącą konfigurację NTP w niektórych systemach Windows. Idealnie, chciałbym móc to zrobić za pomocą wiersza poleceń zamiast nawigowania po ekranach konfiguracji.

(Pracuję nad kilkoma różnymi wersjami systemu operacyjnego, a ekrany konfiguracji nie zawsze znajdują się w tym samym miejscu w różnych wersjach).

Mam nadzieję znaleźć szybkie, niezapomniane polecenie, które po prostu uderzę w konsolę CMD, aby uzyskać wynik. Jednak plik wsadowy, który mogę ze sobą zabrać, również się sprawdzi.

W szczególności potrzebuję:

  • Pokaż, czy system jest skonfigurowany do odbierania czasu z serwera NTP.
  • Pokaż serwery NTP, z których system odbiera czas.
  • Pokaż godzinę ostatniej synchronizacji.
  • Pokaż aktualny czas w systemie.

Jakie polecenia byłyby konieczne do osiągnięcia tych wyników?

Szukasz rozwiązania, które jest kompatybilne z systemami Windows XP, 7, Server 2003 i Server 2008.

Iszi
źródło
Wiem, aby sprawdzić czas, można zrobić „net time \\ nazwa_komputera”, aby uzyskać czas zdalnego komputera. Nie sądzę, aby czas netto pozwalał ci zobaczyć ostatnią synchronizację ... jednak „czas netto?” daje ustawioną opcję, więc jest to połowa tego, czego szukasz.
Supercereal
@Kyle Właśnie wymyśliłem, że net time /querysntppokazuje serwer. Uzyskanie reszty może być trudne.
Iszi
3
W Windows 7 czas netto / querysntp jest przestarzały.
Daniel

Odpowiedzi:

82

W wierszu polecenia wpisz

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

w32tm /query /configuration daje konfigurację, którą skonfigurowałeś.

w32tm /query /status daje informacje takie jak:

  • warstwa
  • wskaźnik skoku
  • precyzja
  • ostatnia synchronizacja
  • Serwer NTP
  • interwał sondowania

time /T wyświetla aktualny czas systemowy.

Uwaga: w32tm /querypo raz pierwszy udostępniono w klienckich wersjach systemu Windows Vista i Windows Server 2008. Zobacz Narzędzia i ustawienia usługi Windows Time

Phillip R.
źródło
5
Nie ma dobrego na XP. „Polecenie / zapytanie jest nieznane.”
Iszi
Jaka jest różnica między time /tczasem pokazanym w prawym dolnym rogu paska zadań?
Pacerier
Na pierwszym, w32tm /query /configurationotrzymuję „wystąpił następujący błąd: Odmowa dostępu (0x80070005).” . Myślę, że mam wystarczające prawa.
Peter Mortensen,
3
Musisz być w tym oknie z podwyższonym poziomem poleceń.
Phillip R.
16

To odpowiada na twoje ostatnie pytanie:

Otwórz wiersz polecenia i wpisz dokładnie:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (ile chcesz zwrotów)

Zwraca czas i różnicę do czasu serwera NTP. Jeśli zwraca czas, błąd: 0x80072746, to nie jest to twój serwer NTP.

Przykład polecenia znajduje się poniżej:

Przykład polecenia

Byron
źródło
Czy możesz sformatować tę odpowiedź?
Ramhound,
Sposób, w jaki samoformatuje się, jest dziwny. Zmieniono
Byron
8

Próbowałem:

w32tm /query /status

Mam:

The command /query is unknown.

Na innej maszynie mam:

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

Potem spróbowałem:

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

Mam:

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

Potem spróbowałem:

net time /querysntp

Mam:

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

Na innym komputerze dostałem stronę pomocy, mówiąc również:

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

Zasadniczo usługa nie była uruchomiona. Postępując zgodnie z tymi instrukcjami, zrobiłem:

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

Wreszcie wszystkie powyższe działałyby. (uwaga: jeśli się net startnie powiedzie, patrz poniżej) Potem musiałem tylko skonfigurować moją ntp ... Zrobiłem to z:

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

postępując zgodnie z instrukcjami tutaj , ale być może mogło to być tak proste jak:

net time /setsntp:10.0.0.5

zgodnie z instrukcją tutaj . (10.0.0.5 to mój lokalny serwer NTP). Jeśli nie używasz lokalnego serwera NTP, możesz użyć ogólnego:

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

Wreszcie może być konieczne wykonanie następujących czynności, które nie były dla mnie konieczne:

w32tm /config /update
w32tm /resync /rediscover

UWAGA: jeśli net start w32timenie powiedzie się z powodu błędu 1290 (Uruchomienie usługi nie powiodło się, ponieważ jeden lub więcej usług w tym samym procesie mają nieodpowiedniego serwisowym ustawienie typu SID), a następnie wykonaj kroki tutaj :

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

Następnie postępuj jak wyżej.


UWAGA 2: jeśli usługa NTP nie uruchomi się automatycznie przy ponownym uruchomieniu, może to wynikać z jej ustawień uruchamiania, jak opisano tutaj : w zależności od systemu Windows może być ustawiony tak, aby uruchamiał się dopiero po dołączeniu do domeny. Możesz to sprawdzić za pomocą:

sc qtriggerinfo w32time

Jeśli skonfigurowano go tak, aby uruchamiał się po dołączeniu do domeny, a na Twoim komputerze nie ma skonfigurowanej domeny, nie uruchomi usługi i nie ustawi godziny. Prawdopodobnie nie dołącza do domeny, ponieważ tego nie chcesz. W każdym razie wystarczy zmienić, który wyzwalacz go uruchamia. Na przykład, aby rozpocząć, gdy urządzenie ma sieć (i dlatego ma dostęp do serwera), wykonaj:

sc triggerinfo w32time start/networkon stop/networkoff
msb
źródło
3

Z wiersza poleceń możesz uzyskać takie informacje:

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

Wydaje się, że powinno to wystarczyć przynajmniej do pójścia w tym kierunku, to znaczy, jeśli rozumiem twoje pytanie. AFAIK, polecenie „reg” działa na wszystkich tych różnych platformach, o ile działają odpowiednie usługi.

osirisgothra
źródło
Otrzymałem: „BŁĄD: System nie mógł znaleźć określonego klucza rejestru lub wartości.” Okazuje się, że W32Time nie został uruchomiony ...
msb 13.03
Czyli „ [\\machine\]” oznacza, że ​​można go pominąć na tym samym komputerze?
Peter Mortensen,
2

Spójrz na w32tmnarzędzie wiersza polecenia. Może ustawiać i sprawdzać konfigurację oraz raportować / stripchart przesunięcia czasowego z innym komputerem.

uSlackr
źródło
1
Ta /queryopcja nie jest dostępna w XP.
Iszi
5
Spróbować net time /querysntp.
Fran
1
@Fran To działa. Miałem nadzieję, że otrzymam jedno polecenie, które było wieloplatformowe, ale wydaje mi się, że będę musiał użyć dwóch różnych - lub napisać plik wsadowy zawierający wykrywanie platformy, aby ustalić, które polecenia należy uruchomić.
Iszi
1
@lszi W moich skryptach testuję obecność użytkowników C: \. Jeśli znajdę ten folder, wiem, że jestem na pudełku po XP.
Fran
1
@Fran Czy możesz napisać własną odpowiedź, która zawiera oba polecenia? Jakiego polecenia użyłbym do sprawdzenia czasu ostatniej pomyślnej synchronizacji dla XP?
Iszi