Как должна работать синхронизация времени в Active Directory
Перед настройкой важно понимать общую схему. PDC Emulator корневого домена леса должен получать точное время от внешнего доверенного источника, а остальные компьютеры домена — использовать штатную иерархию синхронизации Active Directory.
В нашей конфигурации получится следующая схема:
Внешние NTP-серверы
│
▼
PDC Emulator корневого домена
│
▼
Иерархия Active Directory (NT5DS)
│
├── остальные контроллеры домена
├── доменные серверы
└── рабочие станции
Шаг 1. Создаём отдельную GPO для PDC Emulator
Первым делом создадим отдельную групповую политику для контроллера домена, выполняющего роль PDC Emulator.
Отдельная GPO удобна по двум причинам. Во-первых, PDC Emulator корневого домена леса должен иметь отличающуюся от остальных контроллеров конфигурацию времени — именно он будет получать время от внешних NTP-источников. Во-вторых, это снижает риск случайно применить настройки внешнего NTP ко всем контроллерам домена.
Откройте консоль Group Policy Management:
gpmc.msc
В дереве домена найдите:
Group Policy Objects
Щёлкните по нему правой кнопкой мыши и выберите New.
Задайте новой политике понятное имя, например:
NTP - PDC Emulator
После создания GPO появится в разделе Group Policy Objects.
Пока не будем настраивать область её применения. Сначала зададим параметры Windows Time, а затем сделаем так, чтобы политика применялась только к серверу с ролью PDC Emulator.
Шаг 2. Настраиваем Windows NTP Client и внешние NTP-серверы
Теперь настроим созданную GPO NTP - PDC Emulator.
Откройте Group Policy Management, перейдите в Group Policy Objects, щёлкните правой кнопкой мыши по политике NTP - PDC Emulator и выберите Edit.
Перейдите по следующему пути:
Computer Configuration
└── Policies
└── Administrative Templates
└── System
└── Windows Time Service
└── Time Providers
Включаем Windows NTP Client
Откройте параметр:
Enable Windows NTP Client
Установите значение Enabled.
Настраиваем внешний источник времени
Откройте параметр:
Configure Windows NTP Client
Установите значение Enabled.
В поле NtpServer укажите используемые в вашей инфраструктуре внешние серверы времени. Например:
0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8 3.pool.ntp.org,0x8
Несколько источников обеспечивают резервирование на случай недоступности одного из NTP-серверов.
Флаг 0x8 указывает W32Time использовать соответствующий узел в режиме клиентского NTP-запроса.
Для параметра Type установите:
NTP
Таким образом PDC Emulator будет использовать серверы из параметра NtpServer, а не доменную иерархию в качестве источника времени.
Основные параметры политики должны выглядеть следующим образом:
Enable Windows NTP Client: Enabled
Configure Windows NTP Client: Enabled
NtpServer:
0.pool.ntp.org,0x8
1.pool.ntp.org,0x8
2.pool.ntp.org,0x8
3.pool.ntp.org,0x8
Type: NTP
Нажмите Apply и OK.
Также убедитесь, что между PDC Emulator и выбранными NTP-серверами разрешён обмен по UDP 123.
Шаг 3. Создаём GPO для остальных контроллеров домена
Для PDC Emulator мы подготовили отдельную GPO с внешними NTP-серверами. Теперь создадим вторую политику для остальных контроллеров домена.
Им обычно не требуется напрямую обращаться к внешним NTP-серверам. Они должны получать время в соответствии со штатной иерархией Active Directory.
В Group Policy Objects создайте новую политику:
NTP - Domain Controllers
Теперь у нас есть две GPO:
NTP - PDC Emulator
NTP - Domain Controllers
Первая предназначена для PDC Emulator и внешних NTP-источников. Вторая будет использоваться остальными контроллерами домена.
Шаг 4. Настраиваем синхронизацию по иерархии Active Directory
Откройте для редактирования GPO NTP - Domain Controllers и перейдите по пути:
Computer Configuration
└── Policies
└── Administrative Templates
└── System
└── Windows Time Service
└── Time Providers
Включаем Windows NTP Client
Откройте Enable Windows NTP Client и установите:
Enabled
Настраиваем NT5DS
Откройте Configure Windows NTP Client и установите значение Enabled.
Для параметра Type укажите:
NT5DS
Значение NT5DS указывает Windows использовать для выбора источника времени доменную иерархию Active Directory, а не заданный вручную внешний NTP-сервер.
Указывать pool.ntp.org или другие внешние NTP-серверы в этой политике не требуется.
Теперь конфигурация выглядит так:
NTP - PDC Emulator
Type: NTP
Источник: внешние NTP-серверы
NTP - Domain Controllers
Type: NT5DS
Источник: иерархия Active Directory
Шаг 5. Настраиваем область применения GPO
Теперь необходимо сделать так, чтобы NTP - PDC Emulator применялась только к PDC Emulator, а NTP - Domain Controllers — к остальным контроллерам домена.
Обе политики можно связать с OU:
Domain Controllers
В Group Policy Management щёлкните по OU Domain Controllers правой кнопкой мыши и выберите Link an Existing GPO....
Свяжите с OU обе политики:
NTP - PDC Emulator
NTP - Domain Controllers
Далее разделим область их применения.
Создаём WMI-фильтр для PDC Emulator
В Group Policy Management откройте раздел WMI Filters и создайте новый фильтр, например:
PDC Emulator
Добавьте WMI-запрос:
SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 5
Значение DomainRole = 5 соответствует компьютеру с ролью Primary Domain Controller.
Сохраните фильтр и назначьте его политике:
NTP - PDC Emulator
Для этого на вкладке Scope в разделе WMI Filtering выберите созданный фильтр PDC Emulator.
В результате политика с внешними NTP-серверами будет применяться к контроллеру, соответствующему этому условию.
Исключаем PDC Emulator из политики остальных DC
Для политики NTP - Domain Controllers создайте второй WMI-фильтр, например:
Domain Controllers except PDC
Используйте запрос:
SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 4
DomainRole = 4 соответствует резервному контроллеру домена, то есть контроллеру, не выполняющему роль PDC.
Назначьте этот фильтр политике NTP - Domain Controllers.
Получаем следующую схему:
OU: Domain Controllers
│
├── NTP - PDC Emulator
│ WMI: DomainRole = 5
│ Type: NTP
│ └── внешние NTP-серверы
│
└── NTP - Domain Controllers
WMI: DomainRole = 4
Type: NT5DS
└── иерархия Active Directory
Альтернативный вариант — Security Filtering
Вместо WMI-фильтра можно использовать Security Filtering.
Например, в область применения NTP - PDC Emulator можно добавить учётную запись компьютера текущего PDC Emulator:
DC01$
Такой вариант проще в диагностике, но после переноса FSMO-роли PDC Emulator на другой контроллер домена необходимо не забыть изменить Security Filtering.
Шаг 6. Настраиваем GPO для остальных компьютеров домена
Контроллеры домена настроены. Теперь централизованно закрепим правильный источник времени для обычных серверов и рабочих станций.
Члены домена по умолчанию используют доменную иерархию синхронизации времени. Однако отдельная GPO позволяет явно закрепить эту конфигурацию и убрать ранее заданные вручную внешние NTP-источники.
Создайте новую политику:
NTP - Domain Members
Откройте её для редактирования и перейдите:
Computer Configuration
└── Policies
└── Administrative Templates
└── System
└── Windows Time Service
└── Time Providers
Для Enable Windows NTP Client установите:
Enabled
Откройте Configure Windows NTP Client, установите Enabled и задайте:
Type: NT5DS
Внешние NTP-серверы для этой политики указывать не требуется.
Теперь у нас три политики:
NTP - PDC Emulator
Type: NTP
Источник: внешние NTP-серверы
NTP - Domain Controllers
Type: NT5DS
Источник: иерархия Active Directory
NTP - Domain Members
Type: NT5DS
Источник: иерархия Active Directory
Привязываем политику к компьютерам домена
Политику NTP - Domain Members необходимо связать с OU, в которых находятся обычные серверы и рабочие станции.
Например:
Domain
│
├── Domain Controllers
├── Servers
└── Workstations
В такой структуре GPO можно связать с:
Servers
Workstations
Если структура OU сложнее, привяжите политику на том уровне, который охватывает необходимые компьютеры.
Таким образом, внешний источник времени используется PDC Emulator корневого домена леса, а остальные контроллеры, серверы и рабочие станции используют доменную иерархию.
Шаг 7. Применяем GPO и проверяем синхронизацию времени
Теперь необходимо убедиться, что групповые политики распространились между контроллерами домена, применились к нужным компьютерам, а Windows Time (W32Time) использует правильные источники времени.
Проверяем репликацию Active Directory
Если используется несколько контроллеров домена, сначала проверьте репликацию:
repadmin /replsummary
Для более подробной информации:
repadmin /showrepl
Если ошибок репликации нет, можно переходить к проверке GPO.
Принудительно обновляем групповые политики
На тестируемом компьютере откройте CMD или PowerShell от имени администратора и выполните:
gpupdate /force
Для первоначальной проверки удобно протестировать несколько систем разных типов:
- PDC Emulator;
- обычный контроллер домена;
- доменный сервер;
- рабочую станцию.
Проверяем применение GPO
Посмотрите, какие компьютерные политики фактически применились:
gpresult /r /scope computer
Ожидаемый результат:
- PDC Emulator — NTP - PDC Emulator;
- остальные DC — NTP - Domain Controllers;
- серверы и рабочие станции — NTP - Domain Members.
Для подробного HTML-отчёта выполните:
gpresult /h C:\gpresult.html
В отчёте можно посмотреть применённые и отклонённые GPO, результаты фильтрации и итоговую конфигурацию.
Обновляем состояние Windows Time
После применения новой конфигурации можно перезапустить службу Windows Time:
net stop w32time
net start w32time
Затем заставьте W32Time заново определить доступный источник:
w32tm /resync /rediscover
Проверяем PDC Emulator
На PDC Emulator выполните:
w32tm /query /source
В качестве источника должен отображаться один из настроенных внешних NTP-серверов.
Проверьте настроенные узлы:
w32tm /query /peers
Здесь должны присутствовать внешние источники времени.
Проверьте состояние синхронизации:
w32tm /query /status
Полную конфигурацию W32Time можно посмотреть командой:
w32tm /query /configuration
Для PDC Emulator ожидаем:
Type: NTP
а в параметре NtpServer — настроенные внешние серверы времени.
Проверяем остальные контроллеры домена
На обычном контроллере домена выполните:
w32tm /query /source
Здесь не должен использоваться внешний pool.ntp.org, который мы настроили для PDC Emulator. Контроллер должен получать время от подходящего источника внутри доменной иерархии.
Проверьте конфигурацию:
w32tm /query /configuration
Ожидаемое значение:
Type: NT5DS
Дополнительно:
w32tm /query /status
Проверяем серверы и рабочие станции
На обычном компьютере домена выполните:
w32tm /query /source
w32tm /query /configuration
w32tm /query /status
Для члена домена ожидаем:
Type: NT5DS
Быстро проверяем все контроллеры домена
Если контроллеров несколько, можно выполнить:
w32tm /monitor
Команда позволяет получить информацию о контроллерах домена и увидеть расхождение времени между ними.
В крупной инфраструктуре для автоматизации проверки можно использовать подготовленный PowerShell-скрипт TimeDomainTest.ps1.
Скрипт позволяет проверить:
- состояние службы W32Time;
- текущий источник времени каждого контроллера домена;
- тип синхронизации NTP или NT5DS;
- соответствие типа синхронизации роли контроллера;
- время последней успешной синхронизации;
- значение Stratum;
- контроллеры с неправильной или недоступной конфигурацией времени.
Проверяем расхождение времени
При необходимости сравните локальное время с внешним NTP-сервером:
w32tm /stripchart /computer:pool.ntp.org /samples:5 /dataonly
Команда выполнит пять измерений и покажет расхождение времени.
Чем ближе полученные значения к нулю, тем меньше расхождение между локальными часами и выбранным источником.
Что должно получиться
После применения политик PDC Emulator корневого домена леса получает время от внешних NTP-серверов, остальные контроллеры домена используют NT5DS, а серверы и рабочие станции синхронизируются через штатную иерархию Active Directory.
Проверяем журнал Windows Time
Для дополнительной диагностики используйте журнал:
Event Viewer
└── Applications and Services Logs
└── Microsoft
└── Windows
└── Time-Service
└── Operational
FAQ
Какой контроллер домена должен синхронизироваться с внешним NTP-сервером?
В стандартной доменной иерархии внешним источником времени настраивают PDC Emulator корневого домена леса. Остальные доменные компьютеры используют иерархию Active Directory.
Что означает Type: NTP в настройках Windows Time?
Значение NTP указывает службе W32Time использовать вручную настроенные NTP-источники из параметра NtpServer.
Что означает Type: NT5DS?
NT5DS включает синхронизацию времени в соответствии с доменной иерархией Active Directory. Этот режим подходит для остальных контроллеров домена, серверов и рабочих станций — членов домена.
Нужно ли указывать PDC Emulator как NTP-сервер на остальных контроллерах домена?
Нет. При использовании NT5DS вручную прописывать имя PDC Emulator не требуется. Windows выбирает источник времени в соответствии с доменной иерархией.
Как проверить, какая GPO настроила Windows Time?
Для быстрой проверки используйте gpresult /r /scope computer. Подробный отчёт можно создать командой gpresult /h C:\gpresult.html.
Как узнать текущий источник времени Windows Server?
Выполните команду w32tm /query /source. Для дополнительной диагностики используйте w32tm /query /status, w32tm /query /peers и w32tm /query /configuration.
Что проверить, если после применения GPO источник времени не изменился?
Проверьте применение политики через gpresult, итоговую конфигурацию через w32tm /query /configuration, состояние репликации Active Directory и отсутствие другой GPO, переопределяющей параметры Windows Time.
Итог
Мы централизованно настроили синхронизацию времени в Active Directory с помощью групповых политик.
Для PDC Emulator корневого домена леса создана отдельная GPO с внешними NTP-серверами и типом NTP. Для остальных контроллеров домена используется отдельная политика с NT5DS, а обычные серверы и рабочие станции также получают время через доменную иерархию.
Такой подход особенно удобен в крупной и распределённой инфраструктуре: настройки Windows Time задаются централизованно и не требуют ручной конфигурации каждого сервера.
После настройки периодически проверяйте источник и состояние синхронизации с помощью w32tm, а применение политик — через gpresult.
Если сначала хотите разобраться с настройкой времени без GPO, смотрите статью Как настроить источник времени NTP на контроллере домена.