Команда 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

  1. Если кто не знает этого наизусть, то так вот находим все DC и того, кто из них PDC эмулятор
    netdom query fsmo
  2. Теперь проверяю доступность с 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.17

    UDP port 123 (ntp service): LISTENING or FILTERED

    Должно быть именно так “LISTENING or FILTERED”

    Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.

  3. Затем, с помощью regedit открываю параметры ntp сервера
    Там должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя.
  4. Там же, следует перейти к параметру
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
    и убедиться, что там прописано NTP, а не NT5DS
  5. Теперь следует проверить еще одно значение
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    тут должна быть 5
  6. Перезапускаем сервис времени:
  7. Теперь перезапускаю синхронизацию:
    w32tm /resync /rediscover
  8. На остальных контроллерах домена рекомендуется запустить:
    w32tm /unregister
    w32tm /register
    Эта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.
  9. Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
  10. Если на pdc эмуляторе ошибки появляются заново, как в моем случае, то стоит попробовать заменить значение 0x1 на 0x08 в параметре
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    чтобы стали посылаться стандартные клиентские запросы.
  11. Перезапускаем сервис времени
    net stop w32time && net start w32time
  12. Default Domain Controllers group policy
    Default Domain group policy

    ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделе

    Computer configuration/Administrative Templates /System/Windows Time service/Time Providers

    Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.

  13. Если что-то меняли в политике, то перезапускаем сервис времени:
    net stop w32time && net start w32time
  14. Если и после этого ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе
    net stop w32time
    w32tm /unregister
    w32tm /register
    после чего нужно будет настраивать все параметры заново, начиная с п.3. Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.
  15. 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 в сайте.