2012-05-16 13:22:14 +0000 2012-05-16 13:22:14 +0000
66
66

Jak mogę sprawdzić aktualną konfigurację NTP systemu?

Potrzebuję sprawdzić aktualną konfigurację NTP w niektórych systemach Windows. Najlepiej byłoby, gdybym mógł to zrobić poprzez linię poleceń, zamiast nawigować po ekranach konfiguracyjnych.

(pracuję nad kilkoma różnymi wersjami systemu operacyjnego, a ekrany konfiguracyjne nie zawsze są w tym samym miejscu w różnych wersjach)

Mam nadzieję, że znajdę szybką, zapadającą w pamięć komendę, którą mogę po prostu wbić w konsolę CMD, aby uzyskać wynik. Plik wsadowy, który mogę nosić przy sobie, zrobi to jednak równie dobrze.

  • Pokaż, czy system jest skonfigurowany tak, aby otrzymywać czas z serwera NTP.
  • Pokaż czas ostatniej synchronizacji.
  • Pokaż aktualny czas w systemie.

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

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

Odpowiedzi (6)

83
83
83
2012-05-16 14:39:48 +0000

W linii poleceń, typ

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

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

w32tm /query /status podaje informacje takie jak:

  • warstwa
  • wskaźnik skoku
  • precyzja
  • ostatnia synchronizacja
  • serwer NTP
  • interwał pollingu

time /T podaje aktualny czas systemowy.

Uwaga: w32tm /query został po raz pierwszy udostępniony w wersjach klienckich Windows Time systemu Windows Vista oraz Windows Server 2008. Zobacz Windows Time Service Tools and Settings .

17
17
17
2016-07-11 22:30:57 +0000

To odpowiada na Twoje ostatnie pytanie:

Otwórz wiersz polecenia i wpisz dokładnie:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (ile chcesz zwrócić)

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

Poniżej znajduje się przykładowa komenda:

8
8
8
2015-03-13 22:33:22 +0000

I tried:

w32tm /query /status

I got:

The command /query is unknown.

In a different machine, I got:

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

Then I tried:

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

I got:

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

Then I tried:

net time /querysntp

Dostałem:

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

W innej maszynie 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.

Więc, w zasadzie, usługa nie działała. Podążając za tymi instrukcjami, zrobiłem:

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

W końcu wszystkie powyższe zadziałały. (uwaga: jeśli net start się nie powiedzie, zobacz poniżej) Wtedy musiałem tylko ustawić mój ntp… Zrobiłem to z:

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

podążając za instrukcjami z tutaj , ale być może mogło to być tak proste jak:

net time /setsntp:10.0.0.5

jak instrukcjami z tutaj . (10.0.0.5 jest moim lokalnym serwerem NTP). Jeśli nie używasz lokalnego serwera NTP, możesz użyć generycznego:

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

Na koniec, być może będziesz musiał wykonać następujące czynności, które nie były dla mnie konieczne:

w32tm /config /update
w32tm /resync /rediscover
  • *

UWAGA: if net start w32time fails with error 1290 (The service start failed since one or more services in the same process have an incompatible service SID type setting) then follow the steps here :

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

Then follow as above.

  • *

UWAGA 2: jeśli usługa NTP nie uruchomi się automatycznie po restarcie, może to być spowodowane ustawieniami startowymi, jak opisano tutaj : w zależności od okien, może być ustawiona na start tylko wtedy, gdy dołączy do domeny. Możesz sprawdzić z:

sc qtriggerinfo w32time

Jeśli jest skonfigurowany do uruchamiania po dołączeniu do domeny, a nie masz domeny skonfigurowanej w swoim komputerze, nie uruchomi usługi i ustawi czas. Prawdopodobnie nie dołącza do domeny, ponieważ nie chcesz tego robić. W każdym razie, po prostu zmień, który wyzwalacz ją uruchamia. Na przykład, aby rozpocząć, gdy maszyna ma sieć (i dlatego jest w stanie uzyskać dostęp do serwera), wykonaj:

sc triggerinfo w32time start/networkon stop/networkoff
5
5
5
2016-03-01 11:37:26 +0000

Użyj:

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

Plik z próbkami .bat jest na stronie https://gist.github.com/thedom85/dbeb58627adfb3d5c3af .

Polecam również ten program: http://www.timesynctool.com/ ]&003

3
3
3
2012-05-16 14:10:42 +0000

Z linii poleceń możesz uzyskać informację w następujący sposób:

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

Wygląda na to, że to powinno wystarczyć przynajmniej na to, aby iść w tym kierunku, to znaczy, jeśli zrozumiałem twoje pytanie. AFAIK, komenda ‘reg’ działa na wszystkich tych różnych platformach tak długo, jak długo masz uruchomione odpowiednie usługi.

2
2
2
2012-05-16 14:25:34 +0000

Spójrz na narzędzie wiersza poleceń w32tm. Może ono ustawić i zapytać o konfigurację oraz zgłosić /stripchart przesunięcia czasu z innego komputera.