Synchronizacja czasu to ważna rzecz dla każdego administratora. Poniższy wpis przedstawia proces uruchomienia klienta NTP (Network Time Protocol) na systemie operacyjnym Windows.
Na początek sprawdzamy, czy usługa Windows Time
jest zainstalowana w systemie Windows. Robimy to za pomocą polecenia, z wiersza poleceń systemu Windows, uruchomionego jako Administrator:
sc queryex w32time
Jeżeli otrzymujemy komunikat jak powyżej, to instalujemy usługę za pomocą polecenia:
w32tm /register
Zachęcam do zapoznania się z dokumentacją do w32tm
na stronach Microsoft.
Następnie uruchamiamy tą usługę:
net start w32time
Kolej teraz na konfigurację, w poniższym poleceniu, po parametrze /manualpeerlist:
podajemy w cudzysłowach adres serwera czasu. W tym przypadku "time.windows.com"
.
w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /update
Jeżeli wykonujemy powyższe polecenie na kontrolerze domeny to dodajemy jeszcze parametr: /reliable:yes
Prawidłowe wykonanie polecenia potwierdzone jest komunikatem The command completed successfully.
:
Następnie zatrzymujemy usługę i uruchamiamy ją ponownie aby konfiguracja mogła się przeładować. Robimy to za pomocą dwóch poleceń:
net stop w32time
net start w32time
Weryfikujemy adres serwera, z jakiego korzysta usługa NTP:
w32tm /query /source
Czasami trzeba odczekać kilka, kilkanaście sekund po uruchomieniu usługi zanim zacznie pokazywać się prawidłowy adres serwera Jeżeli uruchomimy polecenie za wcześnie, to możemy otrzymać informację: Local CMOS Clock
.
To tyle, jeżeli chodzi o konfigurację. Warto jeszcze dodać, że jeżeli konfigurujemy taką usługę na maszynie wirtualnej, to po weryfikacji adresu serwera z jakiego korzysta aktualnie usługa pojawi się informacja VM IC Time Synchronization Provider
. Aby to obejść należy edytować odpowiedni klucz rejestru Windows. Można to zrobić za pomocą polecenia PowerShell uruchomionego jako administrator:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider -Name Enabled -Value 0
Jeżeli po wykonaniu polecenia pojawia się błąd mówiący o blokadzie wykonywania skryptów to przed Set-ItemProperty...
trzeba wykonać polecenie: Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
.
Następnie zatrzymujemy i uruchamiamy usługę. Po takiej operacji powinniśmy zobaczyć prawidłowy adres serwera czasu na maszynie wirtualnej:
Można jeszcze wspomnieć, że do usunięcia usługi synchronizacji czasu z serwerem NTP potrzebne jest następujące polecenie:
w32tm /unregister
Koniec 🙂
Jeżeli pomogłem to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.