Rozwiązywanie problemów z usługą czasu systemu Windows
On 4 stycznia, 2022 by adminUsługa czasu systemu Windows jest bardzo ważna w usłudze Active Directory. Domyślnie uwierzytelnianie Kerberos wymaga, aby zegary na wszystkich maszynach w domenie były zsynchronizowane z dokładnością do pięciu minut po skorygowaniu o różnice stref czasowych i czas letni. Maszyny, których zegary nie mieszczą się w tym zakresie, nie będą mogły się uwierzytelnić i dlatego nie będą miały dostępu do zasobów domeny.
W obrębie domeny AD, kontroler domeny (DC) posiadający rolę PDC Emulator FSMO jest głównym serwerem czasu dla całej domeny. Nie oznacza to jednak, że każda maszyna w domenie synchronizuje swój zegar bezpośrednio z PDC Emulator. Inne DC synchronizują się z PDC Emulator, podczas gdy serwery członkowskie i klienci mogą synchronizować się z dowolnym DC. W tej hierarchii Emulator PDC powinien być jedyną maszyną, która jest skonfigurowana do synchronizacji z zewnętrznym źródłem czasu, takim jak publiczny serwer NTP. Cała reszta w domenie powinna być skonfigurowana do synchronizacji z AD. Każda inna konfiguracja może spowodować utratę synchronizacji zegara.
Szczegółowe informacje na temat działania usługi Windows Time można znaleźć w tej witrynie TechNet.
Określ zakres problemu
Pierwszym krokiem w rozwiązywaniu problemu z usługą Windows Time powinno być określenie, ilu maszyn dotyczy problem. Jeśli czas jest nieprawidłowy tylko na jednej maszynie, kroki wymagane do rozwiązania problemu będą inne niż kroki wymagane do rozwiązania problemu czasu w całej domenie.
Jeśli problem dotyczy tylko kilku maszyn
- Jeśli dotknięta maszyna działa w systemie Windows Vista lub nowszym, uruchom w32tm /query /source w wierszu poleceń, aby określić źródło czasu dotkniętej maszyny. Zewnętrzne źródło czasu powinno być wymienione tylko wtedy, gdy to polecenie jest uruchamiane na emulatorze PDC; w przeciwnym razie polecenie powinno wyświetlić nazwę DC w domenie.
- Komenda w32tm /query /status również pokazuje źródło czasu maszyny, a także inne potencjalnie użyteczne informacje. Przełącznik /verbose dostarcza jeszcze więcej informacji. Podobnie jak w przypadku pierwszego polecenia, przełączniki te są dostępne tylko na maszynach z systemem Windows Vista lub nowszym.
- Jeśli na liście znajduje się prawidłowe źródło czasu, można użyć polecenia w32tm /resync, aby spróbować zsynchronizować zegar maszyny ze źródłem czasu. Dodanie przełącznika /rediscover do tego polecenia powoduje, że maszyna najpierw próbuje odkryć sieciowe źródła czasu, a następnie próbuje dokonać resynchronizacji.
- Aby zmienić źródło czasu maszyny, można użyć jednego z dwóch poleceń:
w32tm /config /syncfromflags:DOMHIER /update konfiguruje maszynę do używania hierarchii domeny (AD) jako źródła czasu.
w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /update konfiguruje maszynę do używania serwerów czasu w <list> jako swojego źródła czasu.UWAGA: Jeśli w <list> podano wiele serwerów czasu, muszą one być oddzielone spacjami, a cała lista musi być ujęta w cudzysłów.
Jeśli problem dotyczy całej domeny
- Jeśli czas jest nieprawidłowy na wszystkich maszynach w domenie, bardzo prawdopodobne, że źródłem problemu jest emulator PDC. Uruchom polecenie netdom query fsmo na komputerze DC, aby określić, który DC pełni rolę Emulatora PDC.
- Uruchom w32tm /query /source z wiersza poleceń na Emulatorze PDC, aby upewnić się, że jest on skonfigurowany do synchronizacji z zewnętrznym źródłem czasu. Emulator PDC nigdy nie powinien być skonfigurowany do synchronizacji z domeną, ponieważ jest głównym źródłem czasu domeny.
- Jeśli emulator PDC jest maszyną wirtualną (VM), wyłącz synchronizację zegara guest-host. Procedura wykonania tej czynności zależy od systemu operacyjnego działającego na hoście wirtualizacji.
- Aby skonfigurować emulator PDC do synchronizacji z jednym lub kilkoma zewnętrznymi serwerami czasu, należy użyć następującego polecenia:
w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /updateUWAGA: Jeśli w <list> podano wiele serwerów czasu, muszą one być oddzielone spacjami, a cała lista musi być ujęta w cudzysłów.
Ustawienia rejestru usługi Windows Time
Polecenia w32tm określone w powyższych procedurach wprowadzają zmiany w wartościach rejestru usługi Windows Time, które znajdują się pod następującym kluczem rejestru:
HKEY_LOCAL_MACHINE:
HKEY_LOCAL_MACHINE:
HKEY_LOCAL_MACHINE:
HKEY_LOCAL_MACHINE:
HKEY_LOCAL_MACHINE:
HKEY_LOCAL_MACHINE:
HSYSTEM:
Ustawienia usług Windows Time
Możliwe jest oczywiście ręczne ustawienie tych wartości zamiast używania poleceń w32tm. Jeśli zdecydujesz się to zrobić, następujące strony mogą okazać się przydatne:
- Windows Time Service Tools and Settings (zawiera sekcję dotyczącą ustawień rejestru)
- How to Configure an Authoritative Time Server in Windows Server
Group Policy
Jeśli wprowadzisz zmiany w usłudze Windows Time za pomocą poleceń w32tm lub za pośrednictwem rejestru, ale zmiany te w ogóle nie wchodzą w życie lub wchodzą w życie tylko przez krótki czas, a następnie powracają do poprzednich wartości, może istnieć obiekt zasad grupy (Group Policy Object, GPO) nadrzędny wobec wprowadzonych zmian. Ustawienia zasad grupy dla usługi Windows Time zawierają wiele z tych samych elementów, które można skonfigurować za pomocą rejestru lub poleceń w32tm. Te ustawienia można znaleźć w następującej lokalizacji:
Konfiguracja komputera>Polityki>Szablony administracyjne>System>Usługa Windows Time
Przywróć ustawienia domyślne wartości rejestru usługi Windows Time
Jeśli wszystko inne zawiedzie, ta procedura przywróci ustawienia domyślne usługi Windows Time:
- Otwórz konsolę Usługi i zatrzymaj usługę Windows Time (lub uruchom net stop w32time z wiersza poleceń), jeśli jest uruchomiona.
- Otwórz podniesiony wiersz polecenia i uruchom polecenie w32tm /unregister, aby usunąć usługę Czas systemu Windows z rejestru. Usługa nie będzie już widoczna w konsoli Usługi.
- Uruchom w32tm /register, aby odtworzyć usługę z jej domyślnymi ustawieniami rejestru.
- Wprowadź wszelkie potrzebne zmiany w rejestrze, a następnie uruchom usługę Czas systemu Windows w konsoli Usługi lub za pomocą polecenia net start w32time.
.
Dodaj komentarz