Jak zmienić odstęp pomiędzy synchronizacjami czasu w Windows 7?
Windows domyślnie synchronizuje czas przez Internet raz w tygodniu. Bywa, że jest to niewystarczające, bo systemowy czas rozjeżdża się szybciej.
Często spotykaną poradą na zmianę częstotliwości synchronizacji jest modyfikacja wartości SpecialPollInterval w rejestrze. Jest ona tak rozpowszechniona,
że jej nie weryfikowałem i nawet można było ją znaleźć na mojej stronie. Zauważyłem jednak, że modyfikacja tej wartości nie pomaga. Owszem, Windows podawał
krótszy czas do następnej synchronizacji, jednak czas nadal się rozjeżdżał o kilkadziesiąt sekund. Nie udało mi się znaleźć informacji jak dokładnie
ta wartość wpływa na synchronizację, ani jakie jeszcze ustawienia wchodzą w grę. Jest co prawda w Harmonogramie zadań zadanie synchronizujące czas,
ale także jego modyfikowanie nie pomaga. Konieczne jest stworzenie własnego, oddzielnego zadania, opartego np. o systemowy
program w32tm.exe.
W tym celu w Harmonogramie zadań przechodzimy do gałęzi
Biblioteka Harmonogramu zadań -> Microsoft -> Windows -> Time Synchronization
. Nie musi być
to koniecznie ta gałąź, ale utworzenie zadania w tym miejscu pozwoli zachować porządek. Klikamy
Utwórz zadanie...
Wpisujemy jakąś nazwę zadania,
np. Synchronizuj czas. Użytkownika, na którego prawach będzie uruchamiane zadanie, trzeba zmienić na
ZARZĄDZANIE NT\USŁUGA LOKALNA
. Trzeba też zaznaczyć
opcję Uruchom z najwyższymi uprawnieniami. Następnie w zakładce Wyzwalacze tworzymy nowy wyzwalacz, w którym możemy określić jak często zadanie
ma być uruchamiane, np. codziennie, z nieograniczonym powtarzaniem co godzinę. Następnie trzeba utworzyć dwie akcje. Pierwsza ma zapewnić, że jest
włączona usługa
Czas systemu Windows (w32time)
. Tworzymy więc akcję typu Uruchom program i jako ścieżkę podajemy:
%windir%\system32\sc.exe
oraz argumenty:
start w32time task_started
Druga akcja to właściwa synchronizacja czasu. Tworzymy ją podobnie, wpisując ścieżkę:
%windir%\system32\w32tm.exe
oraz argument:
/resync
Ważne jest, żeby akcje były na liście w tej właśnie kolejności. W zakładce
Warunki
warto wyłączyć opcję uruchamiającą zadanie tylko wtedy, gdy komputer
jest na zasilaniu sieciowym. Z kolei w zakłace Ustawienia dobrze jest zaznaczyć opcję
Uruchom szybko zadanie, jeśli pominięto zaplanowane uruchomienie
.
I to wszystko, zadanie powinno działać poprawnie. Można je przetestować uruchamiając je ręcznie. Jeśli czas systemowy był niepoprawny, powinien ustawić
się na prawidłowy. Trzeba pamiętać, że jest to zadanie niezależne, niezwiązane z systemową synchronizacją. Dlatego jeśli np. ustawimy wyzwalanie co godzinę,
Windows może nadal twierdzić, że następna synchronizacja będzie np. za tydzień.
I jeszcze jeden szczegół. Konsola Harmonogramu zadań nie odświeża swojego widoku zbyt często. Dlatego warto wcisnąć F5 żeby zobaczyć aktualny status zadania
(stan, czas ostatniego uruchomienia, wynik)