Sincronizzare l'ora di Internet in uno script di Windows?


11

Esiste un modo per sincronizzare l'orologio di sistema con un server Internet Time (ovvero: time.nist.gov) tramite la riga di comando? Preferibilmente, questo dovrebbe essere qualcosa eseguibile tramite BAT o script PowerShell.

Questa particolare esigenza sorge perché ho alcune macchine virtuali per le quali utilizzo regolarmente la funzione "salva stato macchina" e queste non risincronizzano in genere i loro orologi quando li "riattivo". Spesso, li ricarico per scoprire che l'orologio è (e rimane) giorni fuori sincronia.

La risincronizzazione dell'orologio attraverso la finestra di dialogo Impostazioni ora Internet funziona normalmente, ma per fare ciò è necessario fare molto clic del mouse. Preferirei semplicemente tenere uno script sul desktop che posso fare doppio clic e fare il lavoro per me.

In questo momento questo è per un sistema che esegue Windows 7 Home x64, ma sarebbe compatibile con la retrocompatibilità con XP SP3.


1
La maggior parte dei software VM (Virtual PC, VirtualBox) include driver ("Aggiunte") che mantengono sincronizzato l'orologio del guest con l'host, tra le altre cose.
user1686

@grawity - Usando quelli, ma non sembra fare il lavoro.
Iszi,

Risposte:


13

Vedere il riferimento per W32tm, "Uno strumento utilizzato per diagnosticare i problemi che si verificano con Windows Time": http://technet.microsoft.com/en-us/library/bb491016.aspx . Anche,w32tm /?

Usa w32tm /resync. Potrebbe anche essere necessario impostare un server con net timese non l'hai ancora fatto.


2
Va bene, l'ho fatto ... @echo off && w32tm /resync && PAUSEGettò che in un file BAT, e impostare un collegamento sul desktop con "Esegui come amministratore" controllato. Grazie!
Iszi,

Su Windows 7, quando lo faccio ottengo:The following error occurred: The service has not been started.
Utente

@echo off && w32tm / resync - Il comando Command dice che non riconosce il comando (w32tm)
Arpit Parekh,

.. Il comando non ho potuto eseguire su Windows 7.
Arpit Parekh

1
@DeepakKamat, probabilmente dovrai usare i Servizi di Windows (digita "services.msc" in una casella di esecuzione o di ricerca). Scorri verso il basso per trovare Ora di Windows. Fai clic destro su di esso e scegli Proprietà. Lì puoi impostare il tipo di avvio su automatico.
Kirk Liemohn,

1
@echo off
net start W32Time
w32tm /resync
echo sync complete
  1. Copia questo codice per il Blocco note e salvarlo come un .batfile.
  2. Eseguire il file batch con i privilegi di amministratore o pianificare un'attività per eseguire questo file batch dall'Utilità di pianificazione, come richiesto.

Nota: sono richiesti i privilegi di amministratore e una connessione Internet funzionante.


0

Lo facevo con il comando net.

per ntp

tempo netto ntp.server.foo

per windows

tempo netto \\ server

Non ricordo se avevi bisogno di una sorta di flag / ntp per l'ntp ... ti dirà se lo fai.

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.