Come posso verificare l'attuale configurazione NTP di un sistema?


65

Devo verificare l'attuale configurazione NTP su alcuni sistemi Windows. Idealmente, vorrei essere in grado di farlo tramite la riga di comando invece di navigare attraverso le schermate di configurazione.

(Sto lavorando su diverse versioni del sistema operativo e le schermate di configurazione tendono a non essere sempre nello stesso posto tra le versioni.)

Spero di trovare un comando rapido e memorabile che posso semplicemente inserire in una console CMD per ottenere il risultato. Anche un file batch che posso portare con me farà altrettanto.

In particolare, ho bisogno di quanto segue:

  • Mostra se il sistema è configurato o meno per ricevere l'ora da un server NTP.
  • Mostra i server NTP da cui il sistema sta ricevendo il tempo.
  • Mostra l'ora dell'ultima sincronizzazione.
  • Mostra l'ora corrente sul sistema.

Quali comandi sarebbero necessari per ottenere questi risultati?

Alla ricerca di una soluzione compatibile con Windows XP, 7, Server 2003 e Server 2008.


So che per controllare l'ora puoi fare "net time \\ nomecomputer" per ottenere l'ora del pc remoto. Tuttavia, non credo che il net time ti consenta di visualizzare l'ultima sincronizzazione ... comunque "net time?" offre un'opzione impostata, quindi è come 1/2 di ciò che stai cercando.
Supercereal

@Kyle Ho appena capito che net time /querysntpmostra il server. Ottenere il resto potrebbe essere complicato.
Iszi,

3
In Windows 7 il tempo netto / querysntp è stato deprecato.
Daniel,

Risposte:


82

Nella riga di comando, digitare

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

w32tm /query /configuration ti dà la configurazione che hai impostato.

w32tm /query /status ti dà informazioni come:

  • strato
  • indicatore di salto
  • precisione
  • ultima sincronizzazione
  • Server NTP
  • intervallo di polling

time /T visualizza l'ora corrente del sistema.

Nota: è w32tm /querystato reso disponibile per la prima volta nelle versioni client Windows Time di Windows Vista e Windows Server 2008. Vedere Strumenti e impostazioni del servizio Ora di Windows


5
Non va bene su XP. "Il comando / query è sconosciuto."
Iszi,

Qual è la differenza tra time /te il tempo mostrato in basso a destra sulla barra delle applicazioni?
Pacerier,

Per il primo, w32tm /query /configurationottengo "Si è verificato il seguente errore: Accesso negato. (0x80070005)" . Penso di avere abbastanza diritti.
Peter Mortensen,

3
Devi essere in una finestra di comando elevata per quella.
Phillip R.,

16

Questo risponde alla tua ultima domanda:

Apri un prompt dei comandi e digita esattamente:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (quanti ritorni vuoi)

Restituisce tempo e differenza rispetto all'ora del server NTP. Se restituisce tempo, errore: 0x80072746 non è il tuo server NTP.

Di seguito è riportato un esempio di comando:

Esempio di comando


Potete per favore formattare questa risposta?
Ramhound,

Il modo in cui si auto-formatta è strano. Hanno emendato
Byron il

8

Provai:

w32tm /query /status

Ho ottenuto:

The command /query is unknown.

In una macchina diversa, ho ottenuto:

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

Poi ho provato:

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

Ho ottenuto:

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

Poi ho provato:

net time /querysntp

Ho ottenuto:

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

In un'altra macchina, ho ottenuto la pagina di aiuto, dicendo anche:

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

Quindi, fondamentalmente, il servizio non era in esecuzione. Seguendo queste istruzioni, ho fatto:

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

Alla fine, tutto quanto sopra funzionerebbe. (nota: se net startfallisce, vedi sotto) Quindi ho solo bisogno di impostare il mio ntp su ... L'ho fatto con:

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

seguendo le istruzioni da qui , ma forse avrebbe potuto essere facile come:

net time /setsntp:10.0.0.5

come indicato qui . (10.0.0.5 è il mio server NTP locale). Se non si utilizza un server NTP locale, è possibile utilizzare quello generico:

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

Infine, potresti aver bisogno di fare quanto segue, che non era necessario per me:

w32tm /config /update
w32tm /resync /rediscover

NOTA: in caso net start w32timedi errore con errore 1290 (l'avvio del servizio non è riuscito poiché uno o più servizi nello stesso processo hanno un'impostazione del tipo SID del servizio incompatibile), seguire i passaggi qui :

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

Quindi seguire come sopra.


NOTA 2: se il servizio NTP non si avvia automaticamente al riavvio, potrebbe essere dovuto alle sue impostazioni di avvio, come descritto qui : a seconda delle finestre, potrebbe essere impostato per l'avvio solo quando si unisce a un dominio. Puoi verificare con:

sc qtriggerinfo w32time

Se è configurato per l'avvio quando ti unisci a un dominio e non hai un dominio impostato nel tuo computer, non avvierà il servizio e imposterà l'ora. Probabilmente non fa parte di un dominio perché non lo desideri. In ogni caso, basta cambiare il trigger che lo avvia. Ad esempio, per iniziare quando la macchina ha una rete (e quindi è in grado di accedere al server), eseguire:

sc triggerinfo w32time start/networkon stop/networkoff


3

Dalla riga di comando puoi ottenere le informazioni in questo modo:

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

Sembra che dovrebbe bastare almeno per andare in quella direzione, cioè se ho capito la tua domanda. AFAIK, il comando 'reg' funziona su tutte queste diverse piattaforme purché tu abbia i giusti servizi in esecuzione.


Ho ottenuto: "ERRORE: il sistema non è stato in grado di trovare la chiave o il valore di registro specificato." Si scopre che W32Time non è stato avviato ...
msb,

Quindi " [\\machine\]" significa che può essere lasciato fuori se sulla stessa macchina?
Peter Mortensen,

2

Dai un'occhiata allo w32tmstrumento da riga di comando. Può impostare e interrogare la configurazione e riportare un / stripchart dell'offset temporale con un altro computer.


1
L' /queryopzione non è disponibile su XP.
Iszi,

5
Prova net time /querysntp.
Fran,

1
@Fran che funziona. Speravo di ottenere un comando che fosse multipiattaforma, ma sembra che dovrei usarne due diversi o scrivere un file batch che includa il rilevamento della piattaforma per determinare quali comandi eseguire.
Iszi,

1
@lszi Nei miei script, collaudo l'esistenza di C: \ utenti. Se trovo quella cartella, so di essere su una scatola post-XP.
Fran,

1
@Fran Potresti scrivere la tua risposta che include entrambi i comandi? Inoltre, quale comando dovrei usare per controllare l'ultimo tempo di sincronizzazione riuscito per XP?
Iszi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.