Windows server 2012 служба времени прекратила объявлять себя как источник точного времени

Обновлено: 07.07.2024

Топология синхронизации времени среди участников Active Directory

Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.

  • Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
  • Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
  • Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.

Корневой PDC может синхронизировать свое время как со внешним источником, так и с самим собой, последнее задано конфигурацией по умолчанию и является абсурдом, о чем периодически намекают ошибки в системном журнале.

Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).

Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.

Конфигурация NTP-сервера на корневом PDC

Конфигурирование сервера времени (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта.

Включение синхронизации внутренних часов с внешним источником

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
    "Type"="NTP"
  • w32tm /config /syncfromflags:manual

Объявление NTP-сервера в качестве надежного

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
    "AnnounceFlags"=dword:0000000a
  • w32tm /config /reliable:yes

Включение NTP-сервера

NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
    "Enabled"=dword:00000001

Задание списка внешних источников для синхронизации

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
    "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"

Флаг 0x8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0x1. Все остальные флаги описаны в библиотеке TechNet.

Задание интервала синхронизации с внешним источником

Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0x1.

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
    "SpecialPollInterval"=dword:00000384

Установка минимальной положительной и отрицательной коррекции

Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"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

Особенности виртуализированных контроллеров домена

Контроллеры домена, работающие в виртуализированной среде, требуют к себе особенного отношения.

Источники вдохновения

43 комментария

Все понимаете верно, пока часы на клиентах сильно отличаются от общедоменного времени, они не смогут по керберосу аутентифицироваться на других ресурсах домена. Но при изменении времени на корневом контроллере, клиенты с ним в заданный промежуток времени синхронизируются, и все опять пойдет как надо.

Также можно синхронизировать принудительно командой
w32tm /resync /rediscover

Действительно, в WS2003 этих ключей нет.

Быть может, не настроен источник для обновления (сервер интернета, топология AD).

Спасибо за статью.

to oriang: была похожая ошибка был виноват Файервол.

Спасибо за толковую статью.

Спасибо за помощь, очень толково описано

Бесполезная, Win2003 не работает

Argon, спасибо за статью, как раз то что нужно.
Настраиваю синхронизацию в своей сети, PDC находится на виртуальной машине и вот задумался, а что будет если после выключения и через некоторое время включения PDC будет отсутствовать интернет? Сервер не сможет синхронизировать время да еще и распространит неверные данные на остальных членов домена. Может правильным было настроить сервер времени на хостовой машине и всех синхронизировать уже с ней(кстати у меня она не в домене)? Или может подскажете другое решение. И еще вопрос, как распространить настройки синхронизации времени на машины домена?

Еще пару вопросов. Машины в домене по-умолчанию синхронизируют время с ближайшим по топологии DC или это настраивается списком внешних источников для синхронизации? Как работает список внешних источников для синхронизации: синхронизация происходит спервым по списку, если не доступен то со следуюцим и т.д.; со всеми сразу; случайно с одним из списка?

Может правильным было настроить сервер времени на хостовой машине и всех синхронизировать уже с ней(кстати у меня она не в домене)?

Годный вариант, но синхронизировать с ней только PDC, ни к чему корячить топологию синхронизации в AD. Это можно обозвать как назначение внутренней машины в качестве внутреннего источника времени. Сомнения по поводу убегания времени на виртуальной машине в случае отсутствия доступа к инету оправданы.

И еще вопрос, как распространить настройки синхронизации времени на машины домена?

Ничего не надо настраивать, все само будет, в пределах леса AD. Если хочешь корячить топологию, то unmanaged групповыми политиками (напрямую в реестр).

Машины в домене по-умолчанию синхронизируют время с ближайшим по топологии DC или это настраивается списком внешних источников для синхронизации?

Как работает список внешних источников для синхронизации: синхронизация происходит спервым по списку, если не доступен то со следуюцим и т.д.; со всеми сразу; случайно с одним из списка?

Большое спасибо за развернутый ответ

А с какими серверами проводить синхронизацию, если Россия не переводит часы весной и осенью. А при синхронизации чарез интернет часы меняются на зимнее/летнее

Добрый день! Руководитель дал задание- для коректной работы некоторой программы синхронизировать определенные ПК (находящиеся в одном домене) с сервером точного времени (находящемся в другом домене) по SNTP. Имеетя в виду настроить каждый из ПК локально, не меняя политик домена. Возможно ли это??

w32tm.exe /config /manualpeerlist:"pool.ntp.org,0x8"
/syncfromflags:manual /update

Либо аналогичными параметрами в реестре.

Ребята я с ума схожу от настройки времени. Просто объясните в 2-ух словах, как на сервере 2003 (он же контроллер домена) настроить синхронизацию времени с внешним источником, какими командами пользоваться для проверки, и как машины из домена заставить синхронизовать время с контроллером, третий день бъюсь и ни чего понять не могу.

Машины, входящие в домен как-то дополнительно настраивать не нужно, они сами синзронизируются с контроллеров.

P. S. Подписки на комментарии в данном блоге очень не хватает ;) .

Stanky, спасибо за комменты!

А происходит это просто — контроллер отвечает ошибкой Clock Skew, но кроме самой ошибки в ответе содержится текущее время контроллера домена, благодаря чему компьютер подводит свои часы и не испытывает ни малейших проблем.

Монитором трафика пока не смотрел, но полагаю, что подводит время клиент все-таки по NTP, так как Kerberos ни разу не предназначен для синхронизации времени.

Кто бы спорил ;) Важность правильно выставленного часового пояса в том, чтобы у клиента после синхронизации отображалось его действительное локальное время, а не время в чужой временной зоне.

В качестве подтверждения своих слов: отмотайте время, например, на пять лет назад, перезагрузите компьютер и посмотрите на результат…

Теперь вы знаете почему погибшая батарейка на материнской плате не вызывает проблем с входом в систему ;) .

А еще есть Failback to NTLM ;)

P. S. Подписки на комментарии в данном блоге очень не хватает ;) .

Монитором трафика пока не смотрел, но полагаю, что подводит время клиент все-таки по NTP

Действительно, про NTP, в этом случае, я как-то не подумал. Я копнул дальше и глубже и обнаружил, что подвод системных часов выполняется именно за счёт него.

так как Kerberos ни разу не предназначен для синхронизации времени

Компьютерные сети тоже ни разу не были предназначены для телефонии и что сейчас происходит ;) ?
В общем, как я и говорил, при первой попытке аутентификации, контроллер вернёт ошибку со своим текущим временем и, видимо, LSAS (или кто там ещё) на столько умный, что вычисляет разницу между текущим системным временем и временем на контроллере домена и все дальнейшие операции со штампами времени происходят с учётом этого смещения!
Я долго и безуспешно пытался найти хоть какое-то подтверждение своим словам в официальных источниках и наконец удача мне улыбнулась:

Без правильного часового пояса Kerberos-у труба, особенно в свете недавних изменений часовых поясов в России.

Тем самым вводя в заблуждение, что для его работы они жизненно необходимы ;) .

Лично мне, RSS неудобен более, чем полностью :( .

Stanky, я провел эксперименты и твои выводы подтверждаются. Я успешно получил билеты на актуальное время, хотя время на компьютере было отмотано на пару месяцев назад. Разве что не смог влезть в аутентификатор KRB_TGT_REQ, так как он зашифрован. А расшифровывать я не умею ;(

А вообще, ты серьезно мне шаблон разорвал. Надо поговорить об этом факте с коллегами, среди которых есть даже MCM по Directory.

К сожалению, я тоже не умею :( .

Картинка не отображается ;) .

Я уже задавался целью научиться расшифровывать билеты. На практике от Wireshark пока удалось добиться только того, что он расшифровывает билеты в тех дампах, которые дает скачать в качестве образцов. На реальных дампах нифига не получатся, что только не пробовал. Разве что не собирал идентичную описанной WireShark-ом инфраструктуру на WS2003 без сервиспаков чтобы попробовать экспортировать оттуда keytab-ы.

На картинке хотел показать, как получил билеты на актуальное время, хотя время на компьютере было отмотано на пару месяцев назад. Картинки не загружаются: либо обновление не блог кривое пришло, либо что-то не то с хостингом стало.

Для правильного функционирования доменной среды Windows Server 2008 R2/2012 R2, является корректная работа службы времени Windows (W32Time).

Схема работы синхронизации времени в доменной среде Active Directory:

  • Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль PDC-эмулятора, синхронизируется с внешними источниками точного времени. Он же является источником времени для всех остальных контроллеров этого домена.
  • Контроллеры дочерних доменов в AD, синхронизируют время с вышестоящих контроллеров домена AD.
  • Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.

Служба времени в Windows (W32Time) не имеет графического интерфейса и настраивается из командной строки (утилита w32tm), с помощью реестра (HKLM\System\CurrentControlSet\Services\W32Time\Parameters) и посредством Групповой политики (Group Policy Managment)


Для определения какому контроллеру домена принадлежит FSMО-роль PDC-эмулятора, в командной строке, выполним команду: netdom query FSMO

Включение NTP-сервера

NTP-сервер по-умолчанию включен на всех контроллерах домена, но его можно включить и на рядовых серверах:

Конфигурация NTP-сервера

Задаем тип синхронизации внутренних часов, на использование внешнего источника. (Командная строка/Реестр):



0×1 – SpecialInterval, использование временного интервала опроса.
0×2 – режим UseAsFallbackOnly.
0×4 – SymmetricActive, симметричный активный режим.
0×8 – Client, отправка запроса в клиентском режиме.

Объявление NTP-сервера в качестве надежного. (Командная строка/Реестр):

После настройки необходимо обновить конфигурацию сервиса. Выполняем команду:


Отобразить текущую конфигурацию службы времени:

Получения информации о текущем сервере времени:

Отображение текущих источников синхронизации и их статуса:

Отображение состояния синхронизации контроллеров домена с компьютерами в домене:

Отобразить разницу во времени между текущим и удаленным компьютером:

  • w32tm /stripchart /computer:192.168.1.2 /samples:5 /dataonly

Удалить службу времени с компьютера:

Остановка службы времени:

Запуск службы времени:

    net start w32time

Конфигурация NTP-сервера/клиента групповой политикой

Для централизованной настройки службы времени Windows, на серверах и рабочих станциях в доменной среде Active Directory, воспользуемся групповой политикой. На примере, выполним настройку для рабочих станций.

Переходим в ветку: Конфигурация компьютера (Computer Configuration) — Политики (Policies) — Административные шаблоны (Administrative Templates) — Система (System) — Служба времени Windows (Windows Time Service) — Поставщики времени (Time Providers).

Открываем параметр: Настроить NTP-клиент Windows (Configure Windows NTP Client)

Windows 95 стала доступна в виде приложения на современных платформах

Для начала определяю какой контроллер домена Windows Server 201x имеет роль PDC (если я этого не знаю )) ), если контроллеров домена несколько, как в моём случае. Для этого на любом компьютере или сервере, входящем в домен! , запускаю командную строку от имени Администратора:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

1. Для начала создадим WMI-фильтр, который будет применять нашу новую политику только к серверу с ролью эмулятора PDC

Select * from Win32_ComputerSystem where DomainRole = 5

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Здесь нам нужно включить три политики:
Enable Windows NTP Client: Enabled
Enable Windows NTP Server: Enabled
Configure Windows NTP Client: Enabled

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

Пункт Configure Windows NTP client имеет следующие настройки:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO


Я использовал следующий список серверов точного времени:

3. Создав политику не забываем применить к ней фильтр WMI:

Настройка доменного сервера времени NTP в Windows Server 2012R2/2016 через GPO

4. Пришло время обновить политики на сервере времени и синхронизировать время. Запускаем командную строку от имени Администратора.


Настройка NTP в Windows Server 2012

Настройка времени в серверных операционных системах Windows с помощью протокола NTP является критичной для многих служб. Без правильного настроенного времени, а точнее при рассогласовании часов на сервере и рабочих станциях не могут правильно работать многие протоколы Active Directory и сервисы синхронизации. Установка и поддержка часов с помощью NTP является простой задачей, связанной иногда, однако, с некоторыми сложностями, которые мы попытаемся рассмотреть в этой статье.

Сброс настроек NTP

Stop-Service w32time w32tm /unregister w32tm /register

Команды установки NTP в обычном случае

Для того, чтобы настроить протокол сетевого времени на контроллере Windows Server, прежде всего необходимо отключить синхронизацию посредством Hyper-V, если контроллер виртуализирован с помощью этой технологии. Для этого нужно зайти в настройки и снять галочку с пункта Time Synchronization в разделе Management -> Integration Services


Для тех, кто не использует Hyper-V, предыдущий шаг можно опустить.

Далее, запустить Power-Shell и ввести команды:

Выбор ntp-сервера

Однако нет жесткой необходимости использовать именно этот сервер. Для тех, кто находится в интранете, для тех, у кого есть предпочтения по геолокации или другим параметрам, можно указать другой сервер. Или даже список в кавычках, разделенный пробелами:

Протокол UDP для NTP и блокировка файрволом

Протокол времени использует для своей связи порт UDP с номером 123 в стандартной конфигурации. Необходимо следить за тем, чтобы файрвол не блокировал этот порт. В случае, если блокировка происходит, в логах ntp будет масса информации о том, что соединение невозможно:

Для того, чтобы убедиться, что проблема именно в этом, можно включить вывод дополнительной отладочной информации. Настраиваем логи Windows Server таким образом, чтобы в них писалась вся необходимая информация, но они не росли больше, чем 20 мегабайт:

w32tm /debug /enable /file:C:\tmp\ntp.log /size:20971520 /entries:0-300

Следите за тем, чтобы на диске присутствовал каталог C:\tmp куда будут записаны логи.

После того, как ошибка будет отловлена, вывод дополнительной отладочной информации можно будет отключить:

w32tm /debug /disable

Блокировка ntp файрволом отлавливается по фразе в отладке:

В этом случае (да, в общем, сразу с целью проверки) необходимо проверить правило в файрволе


И, в случае необходимости, поменять правило или добавить его.

Проверка правильности работы ntp

Sending resync command to local computer
The command completed successfully.

The computer did not resync because no time data was available.

Читайте также: