Команда W32TM – управление службой времени в Windows
Казалось бы, по теме синхронизации времени в домене Windows написаны десятки подробных статей статей, например, качественная How the Windows Time Service Works .
Но пытаясь объяснить поведение ОС при изменении части настроек столкнулся с большими затруднениями - в статьях оказалось много пробелов, а местами и неточностей. На опыты и уяснение их результатов ушло несколько дней. Надеюсь статья поможет вам сэкономить время и посвятить его более приятным занятиям.
Начнем. Зачем нам в домене нужно точное время на всех компьютерах?
Во-первых из-за Kerberos . Компьютер начинает проверку своей подлинности на контроллере с посылки Authentication Service Request (AS_REQ). Составной частью пакета является зашифрованная отметка времени. На котроллере домена отметка времени сравнивается с текущим временем системы и при разнице более 300 секунд запрос отклоняется. Эта мера безопасности затрудняет передачу измененных AS_REQ.
Во-вторых из-за приложений . Практически во всех государственных и финансовых организациях требуется фиксировать точное время произведенных операций.
Если в первом случае, достаточно синхронизировать время внутри домена, то во втором необходима также синхронизация с внешним источником точного времени. Это может быть собственный NTP сервер, построенный на базе устройств спутниковой навигации GPS или ГЛОНАСС. Но обычно используются бесплатные NTP сервера доступные в Интернет.
В теории все получается просто, при вводе в домен на компьютерах автоматически настраиваются параметры и все клиентские станции начинают синхронизировать свое время с домен контроллером на котором они прошли аутентификацию. В свою очередь контроллеры домена синхронизируются с контроллером на котором находится FSMO роль PDC. По умолчанию, PDC синхонизируется с time.windows.com и его необходимо вручную настроить на нужный источник. Чтобы разобраться в текущей ситуации, можно последовательно выполнить команду
w32tm /query /peers
на рабочей станции, на домен контроллере с которого она берет время и на PDC.
Поняв текущую схему, можно переходить к изменениям настроек. Здесь нужно понимать, что есть сервис Windows Time (W32Time ) и его субкомпонент который переводит часы на компьютере или изменяет их тактовую частоту. Сейчас мы будем говорить о настройках W32Time касающихся работы с NTP серверами.
Настройки расположены в двух разделах реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\W32Time
При установке ОС создается только первый раздел, второй появляется при применении локальной или доменной политики и имеет приоритет. Из командной строки настройки Windows Time можно помотреть командой w32tm /query /configuration . Причем, настройки взятые из первого раздела будут отображаться с отметкой (Local), из второго с отметкой (Policy).
Настройки достаточно подробно описаны в Windows Time Service Tools and Settings . У меня, сложности вызвал, параметр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
Он представляет собой перечисление NTP серверов с которыми может синхронизироваться данный сервер. Каждый сервер представляет собой IP адрес или DNS имя, а также флаг, относящийся к данному NTP серверу. Флаг следует после имени сервера и отделяется от него запятой. Сервера в строке разделяются пробелами. (Внимание. Допустим только один пробел, двойной пробел считается концом строки и имена серверов после него не рассматриваются).
Пример строки:
ntp1.vniiftri.ru,0x02 ntp2.vniiftri.ru,0x02 ntp3.vniiftri.ru,0x02 ntp4.vniiftri.ru,0x02
Используется два основных флага 0x01 и 0x02.
0x01 SpecialInterval От этого флага зависит как будет Windows Time использоват параметры:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MinPollInterval
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPollInterval
Если данный флаг присутствует, то сервер NTP будет опрашиваться через заданный параметром SpecialPollInterval период времени (секунды).
При отсутствии флага будет использоваться динамический интервал, ограниченный параметрами MinPollInterval и MaxPollInterval (двоичный логарифм от секунд, например, значение параметра 6 значит опрос сервера будет происходит через 2 в степени 6 = 64 секунды).
Посмотреть интервалы опроса и время оставшееся до следующего опроса можно командой w32tm /query /peers - строки PeerPoll Interval и Time Remaining .
Еще раз подчеркну, что интервалы отосятся к опросу NTP серверов, а не к обновлению времени системы.
Имеются неожиданные последствия, если все сервера указать с данным флагом - они перейдут в статус Pending . Если выполнить команду w32tm /monitor то можно увидеть, что RefId изменился на "LOCL" . То есть, сервер не стал синхронизироваться с внешними NTP и выбрал источником синхронизации Local CMOS Clock (идентификатор этого источника 0x4C434F4C). С таким сервером часть клиентов синхронизироваться не будет, например, UNIXы в зависимости от настроек.
0x02 UseAsFallbackOnly
По моему мнению, данный флаг сделан специально для запутывания процесса. Предполагается, что помеченные этим флагом сервера будут опрашиваться только в случае неудачного опроса основных серверов (без флага 0x02). Но на практике реакция на данный флаг непредсказуема.
ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru ntp4.vniiftri.ru
и управлять частотой опроса через параметры MinPollInterval и MaxPollInterval
Все настройки сделанные в реестре вручную либо через политику вступают в силу после рестарта сервиса W32Time .
Собственно все, про NTP, в реализации от Микрософт.
Теперь немного о субкомпоненте (clock discipline subcomponent ) который переводит локальные часы системы или изменяет их тактовую частоту в соответствии с данными NTP.
Он также настраивается через реестр, выше была приведена статья с описанием настроек, к данному субкомпоненту относятся:
FrequencyCorrectRate
HoldPeriod
LargePhaseOffset
MaxAllowedPhaseOffset
MaxNegPhaseCorrection
MaxPosPhaseCorrection
PhaseCorrectRate
PollAdjustFactor
SpikeWatchPeriod
UpdateInterval
В большинстве случаев их изменение не требуется.
Но иногда таки приходится.
Например, параметр MaxAllowedPhaseOffset (по умолчанию 300 секунд) управляет способом перевода локальных часов. Если расхождение между локальным временем и NTP источником меньше MaxAllowedPhaseOffset то W32Time пытается скорректировать время изменением тактовой частоты часов. Если - больше то локальное время переводится согласно полученному от NTP сервера.
Допустим, что в вашем домене, по какой-либо причине, в течении длительного времени не было синхронизации с внешним NTP. Обнаружив проблему вы видите, что разница составляет 320 секунд. Если просто исправить проблему, время в домене мгновенно изменится на 320 секунд, что может привести к различным последствиям для приложений чувствительных к отметкам времени.
Лучше попробовать способ с изменением тактовой частоты, для этого в первую очередь нужно установить MaxAllowedPhaseOffset = 350. Это необходимое, но недостаточное условие. Также должно выполнятся соотношение:
|CurrentTimeOffset| / (PhaseCorrectRate*UpdateInterval) < SystemClockRate / 2
SystemClockRate получим командой w32tm /query /status /verbose строка вывода ClockRate: 0.0156250s переведем секунды в такты ОС (1ms = 10000 тактов): 0.0156250s*1000*10000 = 156250 тактов.
В XP w32tm /query еще не поддерживается и значение SystemClockRate можно взять из реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\LastClockRate
Выполняем команду w32tm /query /configuration - берем строки вывода UpdateInterval: 100 и PhaseCorrectRate: 1 (можно взять эти же значения из реестра).
UpdateInterval - по единицам измерения данной величины в источниках от Микрософт есть противоречие. В вышеприведенной статье указано, что величина измеряется в тактах и ее нужно подставлять в формулу как есть. В описании групповой политики единица измерения указана 1/100 секунды. В микрософтовском примере значение UpdateInterval используется без пересчета (по моим опытам это действительно так). PhaseCorrectRate - скалярная величина используем ее как есть.
Подставляем в условие:
|3200 000 000| / (1*100) < 156250 / 2
32 000 000 < 78125 не выполняется.
Подберем значение UpdateInterval с которым условие будет выполняься = 40960. Сделаем запас и установим UpdateInterval = 45000.
|3200 000 000| / (1*45000) < 156250 / 2
71111 < 78125 второе условие выполнено.
Изменяем значение UpdateInterval в реестре, перезапускаем сервис W32Time . Устраняем причину неработоспособности NTP (если необходимо выполняем w32tm /resync ) и... локальные часы начинают плавно синхронизироваться, путем корректировки тактовой частоты.
обновлено 26.03.2012
Все хотят видеть на компьютере точное время, кроме того, это очень важно для нормального функционирования домена Windows и AD. Казалось бы, чего проще, настраиваешь PDC эмулятор на синхронизацию с каким-нибудь ntp и все становится на места само собой … Но нет, уже несколько раз, наблюдалась рассинхронизация контроллеров домена между собой и жалобы пользователей на то, что наше время отличается от точного на пару минут.
Казалось бы, смешная проблема – пару минут, но для некоторой работы и пара минут важно. Особенно, если это редактора новостной ленты www.korrespondent.net . Правда были еще и шуточные жалобы, что они из-за этой проблемы целых 2, 3 или 5 минут перерабатывают:-)
Стандартные “танцы с бубнами”, которые делал я, а потом и наш сетевой инженер, по руководству от Microsoft помогали, но не долго. Т.е. время сходится, ошибки из лога исчезают, а через пару часов, или, через сутки все начинается заново. А потом, через пару-тройку недель, или месяц-другой, ошибка снова достигает размера более 2-х минут и все заново.
Итак, хочешь что-то сделать хорошо – сделай это сам. Что мы имеем, три контроллера домена, работающих под Windows 2003 Server R2, кучу рабочих станций под Windows XP Professional SP3. В качестве ntp сервера в компании служит Cisco 2821
Признаками проблемы на DC, являющемся еще и PDC эмулятором является наличие следующих ошибок в Event log:
Event Type: Warning
Event Source: W32Time
Event Category: None
Event ID: 47
Date: 17.11.2009
Time: 13:21:45
User: N/A
Computer: DC04
Description:
Time Provider NtpClient: No valid response has been received from manually configured peer ntp.mydomain.ua,0x1 after 8 attempts to contact it. This peer will be discarded as a time source and NtpClient will attempt to discover a new peer with this DNS name.
Event Type: Error
Event Source: W32Time
Event Category: None
Event ID: 29
Date: 17.11.2009
Time: 13:21:45
User: N/A
Computer: DC04
Description:
The time provider NtpClient is configured to acquire time from one or more time sources, however none of the sources are currently accessible. No attempt to contact a source will be made for 15 minutes. NtpClient has no source of accurate time.
Event Type: Information
Event Source: W32Time
Event Category: None
Event ID: 38
Date: 17.11.2009
Time: 14:06:45
User: N/A
Computer: DC04
Description:
The time provider NtpClient cannot reach or is currently receiving invalid time data from ntp.mydomain.ua
(ntp.m|0x1|192.168.0.50:123->10.10.72.17:123).
На остальных контроллерах домена, вместо Event ID 47, присутствует Event ID: 24
Event Type: Warning
Event Source: W32Time
Event Category: None
Event ID: 24
Date: 18.11.2009
Time: 6:46:56
User: N/A
Computer: DC03
Description:
Time Provider NtpClient: No valid response has been received from domain controller pdacemul.addomain after 8 attempts to contact it. This domain controller will be discarded as a time source and NtpClient will attempt to discover a new domain controller from which to synchronize.
Итак, вот процедура по восстановлению работоспособности сервиса w32tm
- Если кто не знает этого наизусть, то так вот находим все DC и того, кто из них PDC эмулятор
netdom query fsmo - Теперь проверяю доступность с PDC эмулятора сервера времени.
portqry –n ntp.mydomain.ua –e 123 –p UDP Querying target system called:
ntp.mydomain.ua
Attempting to resolve name to IP address…
Name resolved to 10.10.72.17UDP port 123 (ntp service): LISTENING or FILTERED
Должно быть именно так “LISTENING or FILTERED”
Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.
- Затем, с помощью regedit открываю параметры ntp сервера
Там должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя. - Там же, следует перейти к параметру
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
и убедиться, что там прописано NTP, а не NT5DS - Теперь следует проверить еще одно значение
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
тут должна быть 5 - Перезапускаем сервис времени:
- Теперь перезапускаю синхронизацию:
w32tm /resync /rediscover - На остальных контроллерах домена рекомендуется запустить:
w32tm /unregister
w32tm /register
Эта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре. - Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
- Если на pdc эмуляторе ошибки появляются заново, как в моем случае, то стоит попробовать заменить значение 0x1 на 0x08 в параметре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
чтобы стали посылаться стандартные клиентские запросы. - Перезапускаем сервис времени
net stop w32time && net start w32time - Если что-то меняли в политике, то перезапускаем сервис времени:
net stop w32time && net start w32time - Если и после этого ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе
net stop w32time
w32tm /unregister
w32tm /register
после чего нужно будет настраивать все параметры заново, начиная с п.3. Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.
Default Domain Controllers group policy
Default Domain group policy
ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделе
Computer configuration/Administrative Templates /System/Windows Time service/Time Providers
Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.
w32tm /config /manualpeerlist:PEERS /syncfromflags:manual /reliable:yes /update
где PEERS — сервера — источники точного времени, причем значение это или DNS имя, или IP адрес. Если источников больше одного, то между ними необходимо ввести пробел, а сам список должен быть в кавычках: «time.domain.com time1.domain.com».
Особенности настройки времени для виртуальных контроллеров домена
Сегодня речь пойдет о некоторых особенностях настройки службы времени на виртуальных контроллерах домена. Обычно схема синхронизации времени в домене Active Directory выглядит следующим образом:
Все рядовые сервера и рабочие станции синхронизируют свое время с ближайшим доступным контроллером домена;
Все контроллеры домена синхронизируются с контроллером, которому принадлежит роль PDC-эмулятор;
PDC-эмулятор является главным источником времени в домене и поэтому должен быть настроен на синхронизацию с надежным внешним источником времени.
Например так выглядят настройки времени на нашем виртуальном контроллере домена. Как видите, на нем с помощью групповых политик настроена синхронизация с внешним источником pool.ntp.org .
Однако если проверить текущий источник времени, то можно довольно сильно удивиться, т.к. в качестве источника выступает непонятная сущность с названием VM IC Time Synchronization Provider .
Дело в том, что по умолчанию виртуальные машины Hyper-V синхронизируют свое время с хостом, причем вне зависимости от настроек службы времени внутри машины. В результате может получиться довольно странная ситуация, когда хост является членом домена и синхронизируется с контроллером, который в свою очередь является виртуальной машиной и синхронизируется с хостом.
Для того, чтобы избежать подобной ситуации, для виртуальных контроллерах домена необходимо отключить синхронизацию времени с хостом. Сделать это можно двумя способами.
Способ первый — отключить синхронизацию в свойствах ВМ. Для этого надо в оснастке Hyper-V Manager открыть свойства виртуальной машины, перейти в раздел «Integration Services» и снять галку с пункта «Time synchronization».
Или то же самое с помощью PowerShell. Например такой командой выведем состояние службы для ВМ:
Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″
А такой отключим синхронизацию:
Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″ | Disable-VMIntegrationService
Способ второй — отредактировать реестр внутри виртуальной машины. Для отключения синхронизации надо выставить значение 0 для параметра Enabled , находящегося в разделе HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider.
Эту настройку можно произвести из командной строки, выполнив команду:
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0
После отключения синхронизации любым из описанных способов необходимо хорошенько пнуть службу времени, чтобы она перестроилась на новый источник. На контроллере домена с ролью PDC-emulator необходимо рестартовать службу и запустить синхронизацию:
net stop w32time & net start w32time
w32tm /resync /force
На остальных контроллерах дополнительно надо выполнить команду:
w32tm/config /syncfromflags:DOMHIER /update
Это заставит службу времени выбрать в качестве источника PDC-emulator согласно доменной иерархии. Таким образом мы получим правильную схему синхронизации времени в домене.
Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.
- Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
- Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
- Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.
Корневой PDC может синхронизировать свое время как со внешним источником, так и с самим собой, последнее задано конфигурацией по умолчанию и является абсурдом, о чем периодически намекают ошибки в системном журнале.
Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).
Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.
Конфигурация NTP-сервера на корневом PDC
Конфигурирование сервера времени (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта.
Включение синхронизации внутренних часов с внешним источником
"Type"="NTP"- w32tm /config /syncfromflags:manual
Объявление NTP-сервера в качестве надежного
"AnnounceFlags"=dword:0000000a- w32tm /config /reliable:yes
Включение NTP-сервера
NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.
"Enabled"=dword:00000001
Задание списка внешних источников для синхронизации
"NtpServer"="time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8"- w32tm /config /manualpeerlist:"time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8"
Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1.
Задание интервала синхронизации с внешним источником
Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.
"SpecialPollInterval"=dword:00000384
Установка минимальной положительной и отрицательной коррекции
Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.
"MaxPosPhaseCorrection"=dword:FFFFFFFF
"MaxNegPhaseCorrection"=dword:FFFFFFFF
Все необходимое одной строкой
w32tm.exe /config /manualpeerlist:"time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update
Полезные команды
- Применение внесенных в конфигурацию службы времени изменений
w32tm /config /update - Принудительная синхронизация от источника
w32tm /resync /rediscover - Отображение состояния синхронизации контроллеров домена в домене
w32tm /monitor - Отображение текущих источников синхронизации и их статуса
w32tm /query /peers
Особенности виртуализированных контроллеров домена
Контроллеры домена, работающие в виртуализированной среде, требуют к себе особенного отношения.
- Средства синхронизации времени виртуальной машины и хостовой ОС должны быть выключены . Во всех адекватных системах виртуализации (Microsoft, vmWare и т. д.) присутствуют компоненты интеграции гостевой ОС с хостовой, которые значительно повышают производительность и управляемость гостевой системой. Среди этих компонентов всегда есть средство синхронизации времени гостевой ОС с хостовой, которое очень полезно для рядовых машин, но противопоказано для контроллеров домена. Потому как в этом случае весьма вероятен цикл, при котором контроллер домена и хостовая ОС будут синхронизировать друг друга. Последствия печальны.
- Для корневого PDC синхронизация с внешним источником должна быть настроена всегда . В виртуальной среде часы не настолько точны как в физической, потому как виртуальная машина работает с виртуальным процессором и прерываниями, для которых характерно как замедление, так и ускорение относительно «обычной» частоты. Если не настроить синхронизацию виртуализированного корневого PDC с внешним источником, время на всех компьютерах предприятия может убегать/отставать на пару часов в сутки. Не трудно представить неприятности, которые может принести такое поведение.
Служба времени Windows, несмотря на кажущуюся простоту, является одной из основ, необходимых для нормального функционирования домена Active Directory. В правильно настроенной среде AD служба времени работает следующим образом: компьютеры пользователей получают точное время от ближайшего контроллера домена, на котором они зарегистрировались. Все контроллеры домена в свою очередь получают точное время от DC с «Эмулятор PDC », а контролер PDC синхронизирует свое время с неким . В качестве внешнего источника времени может выступать один или несколько NTP серверов, например time.windows.com или NTP сервер вашего Интернет-провайдера. Также нужно отметить, что по умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows (Windows Time), а не с помощью протокола NTP.
Если вы столкнулись с ситуацией, когда время на клиентах и контроллерах домена различается, возможно, в вашем домене есть проблемы с синхронизацией времени и эта статья будет вам полезна.
В первую очередь выберите подходящий NTP сервер, который вы могли бы использовать. Список общедоступных NTP серверов доступен на сайте http://ntp.org . В нашем примере мы будем использовать NTP сервера из пула ru.pool.ntp.org:
- 0.ru.pool.ntp.org
- 1.ru.pool.ntp.org
- 2.ru.pool.ntp.org
- 3.ru.pool.ntp.org
Настройка синхронизации времени в домене с помощью групповых политик состоит из двух шагов:
1) Создание GPO для контроллера домена с ролью PDC
2) Создание GPO для клиентов (опционально)
Настройка политики синхронизации NTP на контролере домена PDC
Этот шаг предполагает настройку контроллера домена с ролью эмулятора PDC на синхронизацию времени с внешним NTP сервером. Т.к. теоретически роль эмулятора PDC может перемещаться между контроллерами домена, нам нужно сделать политику, которая применялась бы только к текущему владельцу роли PDC. Для этого в консоли управления Group Policy Management Console (GPMC.msc), создадим новый . Для этого в разделе WMI Filters создадим фильтр и именем PDC Emulator и WMI запросом: Select * from Win32_ComputerSystem where DomainRole = 5
Затем создайте новую GPO и назначьте ее на контейнер Domain Controllers.
Перейдите в режим редактирования политики и разверните следующий раздел политик: Computer Configuration->Administrative Templates->System->Windows Time Service->Time Providers
Нас интересуют три политики:
- Configure Windows NTP Client : Enabled (настройки политики описаны ниже)
- Enable Windows NTP Client : Enabled
- Enable Windows NTP Server : Enabled
В настройках политики Configure Windows NTP Client
укажите следующие параметры:
- NtpServer : 0.ru.pool.ntp.org.0x1, 1.ru.pool.ntp.org.0x1, 2.ru.pool.ntp.org.0x1, 3.ru.pool.ntp.org.0x1
- Type : NTP
- CrossSiteSyncFlags : 2
- ResolvePeerBackoffMinutes : 15
- Resolve Peer BAckoffMaxTimes : 7
- SpecilalPoolInterval : 3600
- EventLogFlags : 0
Совет . Не забудьте настроить межсетевой экран таким образом, чтобы сервер PDC мог получить доступ к внешним NTP серверам по протоколу NTP (UDP порт 123).
Примените созданный ранее фильтр PDC Emulator к данной политике.
Совет . Найти имя сервера с ролью PDC можно с помощью команды: netdom query fsmo
Осталось обновить политики на контроллере PDC:
gpupdate /force
Вручную запустите синхронизацию времени:
w32tm /resync
Проверьте текущие настройки NTP:
w32tm /query /status
Совет
. В том случае, если время не синхронизировалось, перезапустите службу времени Windows и сбросьте текущие настройки:
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net stop w32tim
Настройка синхронизации времени на клиентах домена
В среде Active Directory по умолчанию клиенты домена синхронизируют свое время с контролерами домена (опция Nt5DS – синхронизировать время согласно иерархии домена). Как правило, эта схема работает и не требует перенастройки. Однако при наличии проблем с синхронизацией времени на клиентах домена, можно попробовать принудительно назначить сервер времени для клиентов с помощью GPO.
Для этого создайте новую GPO и назначьте ее на контейнеры (OU) с компьютерами. В редакторе GPO перейдите в раздел Computer Configuration -> Administrative Templates -> System -> Windows Time Service -> Time Providers и включите политику Configure Windows NTP Client .
В качестве сервера NTP укажите имя или ip адрес PDC, например msk-dc1.сайт,0x9, а в качестве типа синхронизации — NT5DS
Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
Совет . Указанная схема применима только к небольшим доменам. Для больших распределенных доменов с большим количеством DC и сайтов придется создать отдельную политику для каждого сайта, чтобы клиенты синхронизировали свое время с DC в сайте.