Служба времени (W32Time) не синхронизируется: Ошибки NTP и AD
Архитектура службы времени и симптомы (Time Skew)
Время на контроллерах домена (DC) или серверах расходится с реальным временем более чем на 5 минут (Time Skew). При попытке выполнить w32tm /resync в командной строке появляется ошибка: "Компьютер не выполнил синхронизацию, поскольку не удалось найти данные о времени" (The computer did not resync because no time data was available). В системном журнале фиксируются ошибки источника Time-Service (Event ID 129, 134, 144).
Почему точное время критично для Windows?
Домен Active Directory работает на протоколе Kerberos. Билеты (TGT/TGS) содержат временную метку (Timestamp), чтобы защитить сеть от атаки повторного воспроизведения (Replay Attack). Если часы сервера и ПК расходятся больше, чем на 5 минут, билеты отвергаются. Пользователи не могут зайти в систему, выдается ошибка >4771 (Failure Code 0x25), а репликация AD останавливается.
Пошаговое дерево решений (Иерархия NTP и PDC)
В домене нельзя просто "указать сервер времени в интернете" на каждом ПК. Должна соблюдаться жесткая иерархия (DOMHIER).
Сценарий 1: Настройка "Корня" времени (PDC Emulator)
Роль PDC Emulator — это единственная машина в лесу, которая имеет право брать время из Интернета.
- Найдите, кто у вас PDC:
netdom query fsmo. - Зайдите на этот контроллер (PDC) от имени Администратора.
- Выполните принудительную привязку к внешним NTP (например, pool.ntp.org) с флагом
0x8(Client):net stop w32time w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org,0x8 1.pool.ntp.org,0x8" /reliable:yes /update net start w32time w32tm /resync /force - Убедитесь, что внешний UDP порт 123 (NTP) открыт на Firewall (роутере) для этого сервера.
Сценарий 2: Настройка рядовых контроллеров и ПК
Все остальные машины (серверы, DC, рабочие станции) обязаны брать время из иерархии домена (от PDC). Если кто-то настроил их на интернет вручную (через реестр или GPO), они рассинхронизируются.
Возврат к доменной иерархии (на проблемном ПК):
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /syncfromflags:domhier /update
w32tm /resync /rediscoverСценарий 3: Сброс 'отравленного' времени в Hyper-V / VMware
Если ваш контроллер домена (PDC) — это виртуальная машина, гипервизор постоянно пытается "навязать" ей свое аппаратное время (Time Synchronization Integration Service). Это вызывает страшные скачки (Jumps) часов то вперед, то назад.
Решение: Откройте параметры ВМ (на хосте Hyper-V) -> Службы интеграции (Integration Services) -> СНИМИТЕ галочку "Синхронизация времени" (Time Synchronization). Виртуальный DC должен получать время только по сети (NTP), а не от материнской платы хоста.
Типовые ошибки администраторов
- Блокировка порта 123 (UDP): NTP работает по протоколу UDP. Пинг (ICMP) или проверка порта через Telnet (TCP) не покажет доступность NTP сервера. Используйте утилиту
w32tm /stripchart /computer:0.pool.ntp.orgдля проверки реальной связи.
Сбои базовых инфраструктурных сервисов (NTP, DNS) полностью парализуют авторизацию Kerberos. Делегируйте обслуживание Active Directory нам: мы выстроим правильную иерархию времени, восстановим репликацию FSMO-ролей, настроим GPO и обеспечим монолитную стабильность домена.
Частые вопросы (FAQ)
Почему w32tm /resync выдает ошибку 'Отказано в доступе'?
Утилита w32tm должна запускаться исключительно в командной строке 'От имени администратора' (UAC Elevated). Обычный пользователь не имеет прав управлять системными часами ядра.
Можно ли изменить максимальное расхождение (5 минут) в политиках?
Да. В Default Domain Policy: Конфигурация компьютера -> Параметры безопасности -> Политики учетных записей -> Политика Kerberos -> 'Максимальное отклонение времени...'. Но увеличивать его не рекомендуется (это снижает защиту от Replay-атак). Лучше починить синхронизацию.
Что такое флаг 0x8 в manualpeerlist?
Флаги указывают службе W32Time, как именно общаться с источником. 0x8 означает 'Client' (стандартный NTP-клиент). 0x1 означает 'SpecialInterval' (использовать интервал из реестра, а не алгоритм NTP). Для публичных серверов всегда используйте 0x8.
Почему время на сервере постоянно спешит на несколько часов?
Проблема с часовыми поясами (Time Zones) или батарейкой CMOS на материнской плате. Убедитесь, что часовой пояс на сервере выставлен правильно (tzutil /g) и установлен патч летнего/зимнего времени (DST update). NTP передает только время UTC, локальный сдвиг делает сама ОС.
Как проверить, с кем реально синхронизируется сервер?
Выполните команду 'w32tm /query /source'. Она покажет имя сервера (например, DC01.corp.local) или внешний адрес (pool.ntp.org). Если там написано 'Local CMOS Clock' или 'Free-running System Clock' — синхронизация не работает, сервер живет своим временем.