Automatycznie synchronizuj czas systemu Windows częściej niż domyślnie

21

Mam kilka komputerów, które tracą czas i chciałbym, aby Windows częściej synchronizował je z czasem internetowym. Myślę, że domyślny system Windows próbuje aktualizować tylko raz dziennie i nie aktualizuje się, jeśli serwer czasu jest niedostępny (co zdarza się dość często), co oznacza, że ​​komputery mogą skończyć się za 20 lub 30 sekund.

Chciałbym utworzyć zaplanowane zadanie, aby to robić co 5 minut, a jeśli domyślny serwer czasu nie jest dostępny, użyj mul

DermFrench
źródło
2
Czy nie byłoby łatwiej ustalić przyczynę, dla której komputery nie mogą połączyć się z serwerem czasu?
Ramhound,
Serwery domyślne również często mnie zawodzą. Spróbuj zmienić go na pool.ntp.orgsugerowany w tej odpowiedzi
jan-glx

Odpowiedzi:

14

Ludzie, mam to uruchomione z systemem Windows wbudowanym w w32TM i zaplanowanym zadaniem (patrz poniżej).

Pierwszym krokiem było skonfigurowanie w32tm do używania wielu różnych serwerów czasu (a także do logowania, abyśmy mogli zobaczyć, co się dzieje). Drugim krokiem było zaplanowanie w32tm w harmonogramie zadań. Podobały mi się te rozwiązania, ponieważ nie wymagały żadnych narzędzi trzeciej części. Naprawdę ważne jest skonfigurowanie różnych serwerów czasu, ponieważ często stwierdzam, że nie odpowiadają.

Skonfiguruj w32tm

Otwórz wiersz polecenia (uruchom następujące polecenia jako administrator)

w32tm /config /manualpeerlist:"time.nist.gov time.windows.com time-nw.nist.gov time-a.nist.gov time-b.nist.gov time-a.timefreq.bldrdoc.gov time-b.timefreq.bldrdoc.gov time-c.timefreq.bldrdoc.gov utcnist.colorado.edu" /syncfromflags:manual /update

w32tm /query /configuration

Sprawdź, czy lista serwerów NTP jest poprawnie zaktualizowana, tzn. Odzwierciedla właśnie wprowadzoną listę użytkowników

w32tm /debug /enable /file:C:\windows\temp\w32time.log /size:10000000 /entries:300

Przejdź do katalogu i sprawdź, czy dziennik został utworzony

Zmień czas systemowy ręcznie (aby czas nie był zsynchronizowany), a następnie wróć do wiersza poleceń i uruchom polecenie resync

w32tm /resync

Sprawdź czas systemowy został zaktualizowany. ** Jeśli pojawi się błąd związany z brakiem uruchomienia usługi czasu, możesz użyć polecenia, net start w32timea następnie spróbuj wykonać kolejną ponowną synchronizację

Jeśli pojawi się następujący błąd: The compter did not resync because the required time change was too big.użyj tego polecenia, aby ponownie zsynchronizować:w32tm /resync /force

Jeśli to się powiedzie, wystarczy, że skonfigurujesz następujące zaplanowane zadanie, aby uruchamiało się tak często, jak chcesz (użyje skonfigurowanej powyżej listy użytkowników).

Zaplanuj w32tm

Argument program / skrypt

%windir%\system32\sc.exe start w32time task_started
%windir%\system32\w32tm.exe /resync
DermFrench
źródło
1
Domyślnie Czas systemu Windows jest aktualizowany co najmniej co 9,1 godziny . Jest to kontrolowane przez MaxPollIntervalwpisu rejestru omawiany na ten link. Za pomocą formuły dane tego wpisu są konwertowane na sekundy 2^Value. np. Jeśli wartość MaxPollInterval wynosi 11, to 2^11=2048sec=34minutes. Dla tych, którzy chcą zmniejszyć częstotliwość aktualizacji bez wykorzystujące zaplanowane zadanie, wystarczy zmienić ten wpis rejestru następnie ponownie uruchomić usługę Czas systemu Windows z net stop w32timepotem net start w32time.
Mówię: Przywróć Monikę
/entries:300” nie jest właściwą opcją. Wyświetla tylko wpisy zarejestrowane za pomocą kodu # 300, czyli wcale nie jest wiele wpisów. Chodzi o to, aby użyć tego parametru jako listy numerów pozycji do pokazania, więc „ /entries:0-300” pokaże wszystkie możliwe zdarzenia w dzienniku.
MikeB,
10

Wybierz Panel sterowania> Narzędzia administracyjne> Harmonogram zadań

po lewej jest drzewo folderów, rozwiń: Biblioteka harmonogramu zadań> Microsoft> Windows> Synchronizacja czasu

kliknij prawym przyciskiem myszy zadanie: SynchronizeTime> właściwości

Na zakładce: Wyzwalacze możesz dodać żądane wyzwalacze.

Rudger
źródło
OP poprosił o interwał synchronizacji czasu 20-30s. Jest to możliwe tylko dzięki sztuczce
polegającej
2
Powszechne nieporozumienie, ale tak naprawdę nie można winić! To zaplanowane zadanie zapewnia tylko, że usługa Czas systemu Windows jest uruchomiona ... Dlatego nawet jeśli zadanie jest uruchamiane częściej, to usługa decyduje, kiedy zsynchronizować, co najwyraźniej jest cotygodniowe.
Gras Double
6
Aby zmienić częstotliwość odpytywania: klucz rejestru HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient, edytuj DWORD SpecialPollInterval, w sekundach (np. Na jeden dzień: szesnastkowy 15180 lub dziesiętny 86400).
Gras Double
Świetny! ta sztuczka zadziałała w moim systemie operacyjnym W7
razor7
2
Dzięki Microsoft za wykonanie prostego zadania sondowania, takiego jak synchronizacja czasu, TAK DAMN KOMPLIKOWANY. Jedynym rozsądnym rozwiązaniem jest regularne ciche uruchamianie narzędzia innej firmy.
Gras Double
4

Możesz użyć TimeSync do zautomatyzowania synchronizacji czasu.

  • upside: nie rejestruje całej usługi takiej jak W32tm (którą masz, gdy używasz W32tm)
  • plus: jest przenośny i można go uruchomić z /autoopcją z folderu startowego
  • minusem: narzędzie innej firmy, a nie wbudowane rozwiązanie

    wprowadź opis zdjęcia tutaj

TimeSync pobiera aktualny czas z serwera NIST iw razie potrzeby dostosowuje zegar komputera. Dokładność jest zwykle w ciągu sekundy. [...] TimeSync wypróbuje alternatywne serwery, na wypadek, gdyby nie można było uzyskać czasu z preferowanego serwera.

Opcja / auto jest dostępna, aby uruchomić TimeSync z folderu StartUp. W tym trybie okno TimeSync nie wyświetla się, jeśli przesunięcie zegara jest poniżej określonego minimum.


Oczywiście nadal możesz zarejestrować wbudowane rozwiązanie W32TM cmd.exe → W32tm /registeri skonfigurować zaplanowane zadanie, aby dzwoniło cmd.exe → W32tm /resyncco 5 minut.

nixda
źródło
2

Możesz także wypróbować ten program: http://www.worldtimeserver.com/atomic-clock/ Umożliwia zmianę ustawień usługi czasu systemu Windows - prosty sposób.

Działa także wymuszanie synchronizacji, podczas gdy Windows „aktualizuj teraz” prawie nigdy nie działa.

NickSoft
źródło
-1

Uruchamiam to polecenie w zarządzanych kioskach.

net start w32time 
w32tm /resync /force

aby ręcznie ustawić datę:

date 5/24/2017
time 18:37:00

ustawić strefę czasową:

tzutil/s Pacific Standard Time
użytkownik1449936
źródło
1
Co robią polecenia w pierwszym bloku kodu? Czy drugi i trzeci blok kodu mają coś wspólnego z tym pytaniem?
Scott,