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

Hoe kan ik de huidige NTP-configuratie van een systeem controleren?

Ik moet de huidige NTP-configuratie op sommige Windows systemen controleren. Idealiter zou ik dit via de commandoregel willen kunnen doen in plaats van door de configuratieschermen te navigeren.

(ik werk aan verschillende OS versies, en configuratieschermen staan niet altijd op dezelfde plaats over de versies heen)

Ik hoop een snel, gedenkwaardig commando te vinden dat ik gewoon in een CMD console kan ponsen om het resultaat te krijgen. Een batch-bestand dat ik bij me kan dragen is echter net zo goed geschikt.

Specifiek heb ik het volgende nodig:

  • Laat zien of het systeem is geconfigureerd om tijd te ontvangen van een NTP server.
  • Laat de NTP server(s) zien waar het systeem tijd van ontvangt.
  • Toon de tijd van de laatste synchronisatie.
  • Toon de huidige tijd op het systeem.

Welke opdracht(en) zouden nodig zijn om deze resultaten te bereiken?

Op zoek naar een oplossing die cross-compatibel is met Windows XP, 7, Server 2003, en Server 2008.

Antwoorden (6)

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

In de opdrachtregel geeft type

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

w32tm /query /configuration u de configuratie die u hebt ingesteld.

w32tm /query /status geeft u informatie zoals:

  • stratum
  • leap indicator
  • precision
  • last sync
  • NTP server
  • poll interval

time /T geeft de huidige systeemtijd weer.

Opmerking: w32tm /query werd voor het eerst beschikbaar gesteld in de Windows Time client versies van Windows Vista, en Windows Server 2008. Zie Windows Time Service Tools en instellingen

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

Dit beantwoordt je laatste vraag:

Open een opdrachtprompt en typ precies:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (hoeveel keer je wilt)

Het retourneert tijd en verschil naar NTP-servertijd. Als het de tijd retourneert, geef dan een foutmelding: 0x80072746 dan is dat niet uw NTP server.

Een voorbeeld van een opdracht staat hieronder:

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

Ik heb geprobeerd:

w32tm /query /status

Ik heb:

The command /query is unknown.

in een andere machine, ik heb:

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

geprobeerd:

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

Ik kreeg:

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

In een andere machine, kreeg ik de hulppagina, die ook zei:

net time /querysntp

Dus, in principe, liep de dienst niet. Volgens deze instructies heb ik wel:

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

. Uiteindelijk zou al het bovenstaande werken. (let op: als net start niet werkt, zie hieronder) Dan hoefde ik alleen maar mijn ntp in te stellen… Ik deed het met:

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

volgens de instructies van hier , maar misschien had het zo makkelijk kunnen zijn als:

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

volgens de instructies hier . (10.0.0.5 is mijn lokale NTP-server). Als je geen lokale NTP-server gebruikt, kun je de generieke gebruiken:

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

. Tenslotte moet je misschien het volgende doen, wat voor mij niet nodig was:

net time /setsntp:10.0.0.5
  • *

OPMERKING: als net start w32time mislukt met fout 1290 (De service start is mislukt omdat een of meer services in hetzelfde proces een incompatibele service SID type instelling hebben) volg dan de stappen hier :

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

volg dan zoals hierboven beschreven.

  • *

OPMERKING 2: als de NTP-service niet automatisch start bij het herstarten, kan dit te wijten zijn aan de startinstellingen, zoals beschreven hier : afhankelijk van uw vensters, kan het zijn dat deze alleen wordt ingesteld om te starten wanneer deze zich bij een domein aansluit. U kunt dit controleren met: w32tm /config /update w32tm /resync /rediscover

Als het is geconfigureerd om te starten wanneer u zich bij een domein aansluit, en u hebt geen domein ingesteld in uw machine, zal het de dienst niet starten en de tijd instellen. Waarschijnlijk sluit het niet aan bij een domein omdat je dat niet wilt. In ieder geval, verander gewoon welke trigger het start. Om bijvoorbeeld te starten wanneer de machine een netwerk heeft (en dus toegang heeft tot de server), doe dan:

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time
5
5
5
2016-03-01 11:37:26 +0000

Gebruik:

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

Een .bat voorbeeldbestand staat op https://gist.github.com/thedom85/dbeb58627adfb3d5c3af .

Ik raad dit programma ook aan: http://www.timesynctool.com/

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

Vanaf de opdrachtregel kun je de informatie als volgt krijgen:

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

Lijkt me voldoende om in ieder geval die kant op te gaan, als ik je vraag heb begrepen. AFAIK, het ‘reg’ commando werkt op al deze verschillende platformen zolang je de juiste services hebt lopen.

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

Bekijk de w32tm command-line tool. Het kan de configuratie instellen en opvragen en een /stripdiagram van de tijd-offset met een andere computer rapporteren.