Служба времени Windows, несмотря на кажущуюся простоту, является одной из основ, необходимых для нормального функционирования домена Active Directory. В правильно настроенной среде AD служба времени работает следующим образом: компьютеры пользователей получают точное время от ближайшего контроллера домена, на котором они зарегистрировались. Все контроллеры домена в свою очередь получают точное время от DC с FSMO ролью «Эмулятор 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 фильтр групповых политик. Для этого в разделе 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 Emulator к данной политике.
netdom query fsmo
Осталось обновить политики на контроллере PDC:
gpupdate /force
Вручную запустите синхронизацию времени:
w32tm /resync
Проверьте текущие настройки NTP:
w32tm /query /status
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
Настройка синхронизации времени на клиентах домена
В среде 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.winitpro.ru,0x9, а в качестве типа синхронизации — NT5DS
Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
У меня так и не синхронизируется PDC:
152078 19:54:06.9999326s - ---------- Log File Opened -----------------
152078 19:54:43.0234540s - W32TmServiceMain: timeout
152078 19:54:43.0234540s - Sample Prepared at 131396108830234540 for peer 192.168.88.1,0x1 (ntp.m|0x1|0.0.0.0:123->192.168.88.1:123)
.............
152078 19:56:26.1528179s - Logging error: NtpClient has been configured to acquire time from one or more time sources, however none of the sources are currently accessible and no attempt to contact a source will be made for 1 minutes. NTPCLIENT HAS NO SOURCE OF ACCURATE TIME.
....................
152078 20:23:34.7445948s - Sample Prepared at 131396126147445948 for peer 192.168.88.1,0x1 (ntp.m|0x1|0.0.0.0:123->192.168.88.1:123)
152078 20:23:34.7445948s - W32TmServiceMain: waiting 64.000s
152078 20:23:51.2628046s - W32TimeHandler called: SERVICE_CONTROL_INTERROGATE
152078 20:24:38.7523962s - W32TmServiceMain: timeout
152078 20:24:38.7523962s - Sample Prepared at 131396126787523962 for peer 192.168.88.1,0x1 (ntp.m|0x1|0.0.0.0:123->192.168.88.1:123)
152078 20:24:38.7523962s - W32TmServiceMain: waiting 64.000s
Не к чему, конечно, сюда такие портянки лепить.
Обрезал лог, оставил ошибку. Сервер не может достучаться до NTP севрера. Проверьте, открыт и доступен ли с сервера 123 TCP порт на источнике времени
За настройку NTP через политики надо больно бить по рукам.
1. В доменной среде ничего не надо делать, контроллеры берут время с PDC, клиенты с контроллера.
2. Точности времени секунда в секунду не добьетесь.
Больная тема для меня. Предыдущие админы нахреначили синхронизацию чуть ли не в 10 разных политиках, до сих пор натыкаюсь и с матами удаляю.
Есть проблема с синхронизацией времени?
На всех контроллерах:
1. Убиваем службу w32time
2. Грохаем ветку реестра HKLM\System\CurrentControlSet\services\W32Time\
3. Регистрируем службу заново
4. Проверяем, что параметр TYPE в HKLM\System\CurrentControlSet\services\W32Time\Parameters равен NT5DS
На PDC настраиваем синхронизацию с внешним поставщиком времени
5. И ничего б*ть не трогаем!=) Через какое-то время время стабилизируется.
Для понимания — время не импортируется, оно сверяется и подгоняется под эталон.
Не забываем, что для керберос разница в 5 минут не критична.
Хитрожопых кадровиков и безопасников, желающих снихронить свои убогие СКУДы с виндовыми тачками слать надолго и подальше.
Всё, я кончил =)
Полностью согласен. Время домена — не повод для торговли. Оно должно быть правильным, но в разумных пределах, плюс-минус несколько минут не являются критичными для общения. Хотя встречал домен, где для хождения кербероса админы сделали максимальную погрешность часов сутки. Всякое бывает, но «правильный» админ всегда найдет решение… или костыль…
ПК не знает и никак не узнает, что PDC сменился. Так что политика обязательно должна быть!
А ему не надо знать. Он кричит в сеть «PDC!!!», а те сами знают, кому из них отозваться. У них DNS для этого есть.
Спасибо Бро, помог!
Вообще, утверждение, что все само работает верно для сети, где довольно простая схема и все открыто. Но, схемы и варианты могут быть разные.
Точно ли это правильный синтаксис?
Разве не «,» перед 0x, а серверы разделены пробелом, а не «,»?
0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1 3.ru.pool.ntp.org,0x1
Вы правы, там разделитель пробел. Добавил ремарку в статью. Спасибо!
А что значат эти 0х1?
Этот параметр определяет битовую маску опций режима синхронизации с сервером времени
Возможны следующие значениея
0x1 – SpecialInterval, использование специального интервала опроса из значения SpecialPollInterval . (Instead of following the NTP specification, wait for the interval specified in the SpecialPollInterval entry before attempting to recontact this time source. Setting this flag decreases network usage, but it also decreases accuracy.)
0x2 – режим UseAsFallbackOnly. (Use this time source only as a fallback. If all time sources that are not fallbacks have failed, then the system selects one fallback time source at random and uses it.)
0x4 – SymmetricActive, симметричный активный режим. (Set the local computer to operate in symmetric active mode in the association with this source.)
0x8 – Client, запрос отправляется в клиентском режиме. (Set the local computer to operate in client mode in the association with this source.)
MSFT рекомендует использовать 0x1
Спасибо itpro за интересный и полезный блог.
Но лично у меня эта w32tm работать не хочет ни через GPO ни через реестр (при снесенных GPO, потому что у них приоритет).
Пишет «Синхронизация не выполнена, так как нет доступных данных о времени». При этом w32tm /stripchart /computer:ru.pool.ntp.org работает корректно, имена в IP DNS обрабатывает корректно, порт UDP 123 открыт (можно вообще вырубить файрволл с тем же успехом), уже не знаю, что этой службе надо. Всё работает кроме этой дряни.
Может есть какой-то альтернативный вариант для синхронизации времени PDC с внешним источником?
ОС Windows Server 2012R2
Ваш сервер случайно не виртуальная машина? Они могут принудительно синхронизоровать время с хостовым гипервизором через службы интеграции.
Выполняете настройку на контроллере домена с ролью PDC? Пробовали выставить синхронизацию времени командами?
w32tm /config /manualpeerlist:0.ru.pool.ntp.org /syncfromflags:manual /reliable:yes /update
Если не помогает, воспользуйтесь советами из комментария выше
Попробовал ваш вариант с ручными настройками синхронизации с 0.ru.pool.ntp.org. Это не виртуальный, а реальный контроллер с ролью PDC поэтому с параметром NT5DS он не будет синхронизироваться с внешними источниками времени. Служба запустилась, но смущает, что /resync по-прежнему не пашет, а в debug пишет что-то подобное:
152344 12:51:53.4225508s — Logging error: NtpClient has been configured to acquire time from one or more time sources, however none of the sources are currently accessible and no attempt to contact a source will be made for 15 minutes. NTPCLIENT HAS NO SOURCE OF ACCURATE TIME.
Или это нормально?
проверь, через rsop, что на pdc не действует групповая политика, которая прописывает nt5ds или что-то еще. лучше всего на default domain controllers police параметры настройки времени поставить в «отключено», включить только сервер ntp. тогда политика настройки времени, назначенная на домен, не затронет контроллеры домена.
и будет счастье.
По rsop всё чисто. В default domain policy везде стоят параметры «не задано» как и должно быть. К тому же когда делаешь настройки через политики как, например, описано в статье itpro в w32tm /query /configuration видно, что некоторые настройки задаются политикой. Там четко это прописано.
В описании политики клиента стоит параметр 0x9. Что он значит?
0x9 получается путем сложнеия (0x8) + (0x1)
Значит включены две опции:
0x1 – SpecialInterval, использование задаваемого интервала опроса
0x8 – Client, отправка запроса в клиентском режиме
если все чисто, значит не включен сервер ntp? включи сервер и клиента в политике ddcp явно.
Включил, будем ждать…
а чего ждать? конфигурация настроена? тогда gpupdate, rsop, что б проверить применение политики, и можно w32tm /resync. должен обновиться
Всё как обычно — нет доступных данных о времени. Питал надежду, что возможно когда-то заработает
тогда не будем людей напрягать перепиской, пиши **@ya.ru, попробуем разобраться
Приветствую.
Проделал все это на эмуляторе PDC, так как BPA ругалось что PDC почему то не внезапно не является сервером времени и не получает время от внешних источников.
Короче, скажу сразу, оба КД у меня крутятся на Hyper-V. Синхронизация на этих машинах с хостом в службе интеграции отключена. Настроил PDC на получения времени, специально поменял время на час назад. Второй КД заорал что все плохо, и.т.д, ну это нормально, рассинхрон во времени. Сижу я, жду пока PDC синхронизирует время, прошло 20 минут, синхронизация не проходит. Запускаю w32tm /query /peers вижу 4 источника указанных в статье. Ок. w32tm /query /status показывает что источник найдет и ожидается синхронизация. Сижу дальше, синхронизации нет и нет. Запускаю w32tm /resync и получаю точное время. Ок. Перевожу время назад на час, жду, ничего не происходит. Психанул, убил w32time и перерегистрировал ее. Запустил — перезапустил, сижу жду, ничего не происходит. Как так то? Как быть?
А работает ли WMI? При создании WMI, вылетело предупреждение — Указанное пространство имен не является допустимым пространством имен на локально компьютере или же у вас отсутствует доступ к этому пространству и.т.д. А теперь второй КД, который не является PDC эмулятором, пишет мне, что он не объявлен как сервер времени. Это значит политика GPO и на него заехала?
Windows Server 2012R2
UPD: Второй КД перестал орать, что он не объявлен как сервер времени. И да, я включил лог w32time, если что, то могу предъявить его, там вроде ошибок нету
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net stop w32tim
Наверное в последней строчке должно быть:
net start w32tim
*поправка:
net start w32time
Спс. Принято 🙂
Хотел бы уточниться. В домене 3 контроллера домена DC1, DC2, DC3. Где DC1 является PDC. На нем все настраивается согласно статьи. На DC2 и DC3 настройка такая же, как и на простых клиентах домена. т.е. В качестве сервера NTP указан DC1, а в качестве типа синхронизации — NT5DS. Я все правильно понял?
На PDC нужно настраивать синхронизацию с внешним источником времени. Все остальные DC должны автоматически синхронизировать с ним, а с DC уже синхронизируются клиенты. Дополнительно настраивать ничего не нужно.
В статье описана схема если возникают проблемы с синхронизацией, но без обоснованной необходимости так делать не нужно.
Параметр Type в политике на PDC разве не должен быть «NTP»?
подскажите, есть два контроллера, DC00,DC01
w32tm /query /peers
#Узлы: 1
Узел партнера: DC00.domen.local
но
netdom query fsmo
Хозяин схемы DC01.domen.local
Хозяин именования доменов DC01.domen.local
PDC DC01.domen.local
Диспетчер пула RID DC01.domen.local
Хозяин инфраструктуры DC01.domen.local
Почему время берётся с DC00?
Проверьте значение параметра NtpServer и AllSync в HKLM\System\CurrentControlSet\services\W32Time\parameter на обоих DC
Если хотите определить, откуда берется время для синхронизации, то нужна команда w32tm /query /source
w32tm /resync /rediscover
Добрый день! произошла странная странность! на сервере настроено задание в планировщике. оно одно в 16.00, но почему-то штатно выполнилось дважды. все записи в журнале говорят, что дважды произошло событие «16:00». Не могло это быть потому, что в 16.00 началась синхронизация времени сервера и при корректировке снова наступило 16:00? где это настраивается? Очень неожиданно было, когда начальство получило дважды один и тот же большой отчет.
Какова частота опроса NTP сервера? Реестр — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
3600
(это значит 1 час?)
Время указывается в секундах. 3600 секунд = 60 минут = 1 час
Когда-то сохранил себе цитату с одного из форумов, цитирую с сохранением орфографии:
А теперь внимательно слушайте сюда. В случае эмулятора PDC (единственного или первого DC в Вашей сети) при написании политики ни в коем случае не указывайте в свойствах параметра ‘Configure Windows NTP Client» Type NT5DS .
Там должен быть только NTP. Иначе будут ошибки вида: «Синхронизация не выполнена, так как нет доступных данных о времени». Этот сервер ходит за точным временем наружу. По протоколу NTP.
Тип NT5DS — указывается для всех остальных серверов в сети, клиентов, вторичных DC и т.п.
Лучший коммент! Спасибо!
Добрый день, господа!
Столкнулся с проблемой синхронизации времени на сервере WinSer2019.
Попробую описать в чем именно проблема!
1. Синхронизация настроена на один из локальных серверов по NTP и всё работает до поры, до времени;
2. Как только на сервере источника синхронизации возникает сбой(перезагрузка сервера или службу времени отключена), то время автоматически убегает назад на 7 часов.
Как можно исправить данную проблему?
Где что подкрутить?
Сервер новый, только проходит обкатку.
Использовать надежный внешний NTP сервер? ):
Читайте мат часть Windows Time работает на базе NTP.