Параметры групповой политики ntp клиента связанные со службой времени windows
Сегодня пришлось повозиться на держателе домена (windows 2003) и корректно настроить ntp. Ниже будет информацию, которая мне помогла.
Процедура по восстановлению работоспособности сервиса w32tm
1. Находим все DC и того, кто из них PDC эмулятор
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”. Кавычки, понятное дело, нужно убрать. Для уверенности в том, что тут нету ошибки, можно пропинговать указанный ntp-сервер.
4. Там же, следует перейти к параметру Type:
и убедиться, что там прописано NTP, а не NT5DS
5. Теперь следует проверить еще одно значение: AnnounceFlags
тут должна быть 5
6. Перезапускаем сервис времени:
7. Синхронизируемся:
8. На остальных контроллерах домена рекомендуется переустановить службу времени
Команда: "w32tm /unregister && w32tm /register" удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.
9. Рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
10. Если на pdc эмуляторе ошибки все равно наблюдаются, то стоит попробовать изменить формат клиентских запросов
Меняем значение с 0x1 на 0x8
11. Перезапускаем сервис времени
12. Рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени:
Default Domain Controllers group policy, Default Domain group policy и другие в которых изменены любые значения в разделе
Computer configuration/Administrative Templates /System/Windows Time service/Time Providers
Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.
Если что-то меняли в политике, то перезапускаем сервис времени: net stop w32time && net start w32time
13. Если так ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе:
net stop w32time w32tm /unregister w32tm /register
После чего нужно будет настраивать все параметры заново, начиная с п.3.
Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.
Включение лога сервиса времени
В особо тяжелых случаях может помочь включение лога для сервиса. Для настройки этого используются три параметра в реестре по пути:
Если нижеприведенных ключей там нету, а их нету по умолчанию, то их следует создать
- FileLogSize, Type: DWORD, Data: 10000000 - максимальный размер лог-файла в байтах.
- FileLogName, Type: REG_SZ (String), Data: C:\Test\w32time_log.txt - адрес нахождения лог-файла
- FileLogEntries, Type: REG_SZ (String), Value: 0-116 - уровень детализации лога. Максимальный диапазон: 0-300.
Вместо изменения значений в реестре, можно то же самое сделать из командной строки:
Чтобы выключить логи отладки можно ввести команду:
Если Вы перенесли роль PDC Emulator на другой сервер, необходимо дополнительно выполнить настройку старого сервера командой
и перезапустить службу времени:
Первое решение проблемы "no time data was available"
Еще раз обращу внимание, что проблема была в доменных политиках.
Команда w32tm /resync выдавала ошибку
The computer did not resync because no time data was available.
Решено это было следующим образом:
- Start / Run / dsa.msc / OK.
- Right-click the Domain Controllers container and press Properties.
- Select the Group Policy tab.
- Select the Default Domain Controllers Policy and press Edit. If GPMC is implemented, press Open first.
- Expand Computer Configuration / Administrative Templates / System / Windows Time Service.
- Right-click Global Configuration Settings and press Properties.
- Select Not Configured.
- Press Apply and OK.
- Expand Windows Time Service.
- Double-click Enable Windows NTP Client.
- Select Not Configured.
- Press Apply and OK.
- Double-click Configure Windows NTP Client.
- Select Not Configured.
- Press Apply and OK.
- Double-click Enable Windows NTP Server.
- Select Not Configured.
- Press Apply and OK.
- Exit the Group Policy Editor.
- Close any open policy dialog boxes.
- Open a CMD.EXE window.
- Type gpupdate /force and press Enter.
Второе решение проблемы "no time data was available"
Во второй раз с этой же ошибкой с я столкнулся через пару лет. При попытке получить время от нашего cisco роутера, при помощи команды w32tm /resync, видел ошибку:
Sending resync command to local computer.
The computer did not resync because no time data was available.
Команда синхронизации отправлена на local computer.
Синхронизация не выполнена, поскольку нет доступных данных о времени.
При этом вышеописанные действия уже были совершены.
Служба win32time отсылала "симметрические пакеты": в снифере wireshark я видел что windows сервер отсылает пакеты "NTP Version 3, symmetric active", но никакого ответа от CISCO не получал.
В логах службы сообщалось "No response from peer", а в логах роутера:
В этой случае мне помогла команда:
и перезапуск службы времени.
После этого в wireshark увидел нормальный обмен пакетами:
- windows сервер посылал пакеты "NTP Version 3, client"
- cisco роутер отвечал пакетами "NTP Version 3, server"
Настраиваем период синхронизации времени
Инструкция работает на компьютерах которые не включены в домен.
Переходим к редактированию реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time \TimeProviders\NtpClient\SpecialPollInterval - ключ в реестре, задает период обновления синхронизации времени в системе в секундах. Вводим в десятичном формате необходимый период.
После этого перезагружаем компьютер или вводим команду w32tm /config /update
Проверить с какой периодичностью происходит синхронизация времени:
- Кликаем по часам в панели задач
- Переходим к "изменение настроек даты и времени", вкладка "Время по Интернету"
- Жмем кнопку "Изменить параметры"
- Убеждаемся что установлена галочка возле "Синхронизировать с сервером времени в Интернете"
- Выбираем нужный сервер, жмем кнопку "Обновить сейчас" и ждем пока не появиться надпись "Время было успешно синхронизировано", если же увидели надпись "Ошибка при выполнении синхронизации" то выбираем другой сервер.
- После успешной синхронизации жмем кнопку "ОК" и на вкладке "Время по Интернету" смотрим когда будет "Следующее выполнение синхронизации"
Указание часового пояса через групповые политики
- Открываем политику для контейнера где находиться компьютер
- Переходим к Конфигурация компьютера - Настройка - Конфигурация Windows - Реестр
- Левый клик по правой белой области в области "Реестр" и выбираем пункт меню "Создать" - "Мастер реестра"
- Выбираем компьютер на котором установлен нужный часовой пояс (у меня это локальный)
- В Браузере реестра переходим к "HKLM \ System \ CurrentControlSet \ Control \ TimeZoneInformation"
- Отмечаем все ключи в этой папке и жмем "готово"
- Все теперь на локальных компьютерах автоматически будет устанавливаться необходимый часовой пояс и после перезагрузки устанавливаться правильной время
Полезные команды связанные со службой времени ntp:
Помните что после любых изменений в конфигурации ntp-службы нужно ее перезапускать, команда:
Если вы столкнулись с ситуацией, когда время на клиентах и контроллерах домена различается, возможно, в вашем домене есть проблемы с синхронизацией времени и эта статья будет вам полезна.
Настройка синхронизации времени в домене с помощью групповых политик состоит из двух шагов:
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 укажите следующие параметры:
Примените созданный ранее фильтр PDC Emulator к данной политике.
Осталось обновить политики на контроллере 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.
Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
Синхронизация времени в Active Directory
Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.
- Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
- Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
- Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.
Корневой PDC может синхронизировать свое время как со внешним источником, так и с самим собой, последнее задано конфигурацией по умолчанию и является абсурдом, о чем периодически намекают ошибки в системном журнале.
Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).
Далее я приведу оптимальную с моей точки зрения конфигурацию сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.
Для того, чтобы понять кто у вас в сети является NTP сервером из контроллеров домена, прочитайте вот эту статью, многие вопросы отпадут сами собойВводим netdom query fsmo. В моем примере, роль PDC и NTP сервера, принадлежит контроллеру dc7
Конфигурация NTP-сервера на корневом PDC
Конфигурирование сервера времени в Windows (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта. Но в начале посмотрите полностью ваши настройки на компьютере, делается это командой:
EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 6 (Локально)
MaxPollInterval: 10 (Локально)
MaxNegPhaseCorrection: 172800 (Локально)
MaxPosPhaseCorrection: 172800 (Локально)
MaxAllowedPhaseOffset: 300 (Локально)FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 7 (Локально)
UpdateInterval: 100 (Локально)[TimeProviders]
NtpClient (Локально)
DllName: C:\Windows\system32\w32time.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
CrossSiteSyncFlags: 2 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 3600 (Локально)
Type: NT5DS (Локально)NtpServer (Локально)
DllName: C:\Windows\system32\w32time.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 0 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)VMICTimeProvider (Локально)
DllName: C:\Windows\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
Включение синхронизации внутренних часов с внешним источником
Объявление NTP-сервера в качестве надежного
NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.
Задание списка внешних источников для синхронизации
- [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"
Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1.
Задание интервала синхронизации с внешним источником
Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.
- [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
Настройка NTP сервера и клиента групповой политикой
Раз уж у нас с вами домен Active Directory, то глупо не использовать групповые политики, для массовой настройки серверов и рабочих станций, я покажу как настроить ваш NTP сервер в windows и клиента. Открываем оснастку "Редактор групповых политик". Перед тем как настроить наш NTP сервер в Windows, нам необходимо создать WMI фильтр, который будет применять политику, только к серверу мастера PDC.
Вводим имя запроса, пространство имен, будет иметь значение "root\CIMv2" и запрос "Select * from Win32_ComputerSystem where DomainRole = 5". Сохраняем его.
Затем вы создаете политику на контейнере Domain Controllers.
В самом низу политики применяете ваш созданный WMI фильтр.
Переходим в ветку: Конфигурация компьютера > Политики > Административные шаблоны > Система > Служба времени Windows > Поставщики времени.
Тут открываем политику "Настроить NTP-клиент Windows". Задаем параметры
Делаем отдельную групповую политику для клиентских рабочих машин, вот с такими параметрами.
- NtpServer: Адрес вашего контроллера домена с ролью PDC.
- Type: NT5DS
- CrossSiteSyncFlags: 2
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 3600
- EventLogFlags: 0
Далее идем на клиента и обновляем групповые политики gpupdate /force и вводим команду w32tm /query /status
Особенности виртуализированных контроллеров домена
Контроллеры домена, работающие в виртуализированной среде, требуют к себе особенного отношения.
Настройка состоит из 2х этапов:
1) Создание GPO для PDC
2) Создание GPO для клиентов в сети.
Теперь более подробно.
1) Создание GPO для PDC
a) Перейти в консоль управления групповыми политиками (Group Policy Management)
b) В OU Domain Controllers создать GPO (TimeSyncServer предполоджим)
d) Переходим Computer Configuration\Administrative Templates\System\Windows Time Service\Time Providers
e) Изменяем все 3 парамметра.
h) Правый клик по GPO TimeSyncServer. Установить Enforced . (То есть данная политика не будет перезаписана другими)
i ) Указать только PDC (Первичный домен контроллер / Primary Domain Controller) в Security Filtering. (Таким образом политика отработает только на указанной машине)
j) Обновить применяемые политики на PDC
gpupdate /force
k) Проверить настройки NTP.
w32tm /query /status
l) Запустить синхронизацию времени вручную (для проверки, чтобы не ждать)
w32tm /resync
2) Создание GPO для клиентов в сети:
a) Перейти в консоль управления групповыми политиками (Group Policy Management)
b) Cоздать GPO (TimeSync предполоджим)
d) Переходим Computer Configuration\Administrative Templates\System\Windows Time Service\Time Providers
e) Изменяем только парамметр Configure Windows NTP Client
f) gpupdate /force (обновляем политики)
w32tm /query /status (проверяем настрокий ntp клиента)
Хотите узнать, как использовать групповую политику для выполнения конфигурации сервера NTP на Windows? В этом учебнике мы покажем вам, как создать групповую политику для настройки сервера NTP на Windows.
• Windows 2012 R2
• Windows 2016
• Windows 2019
• Windows 10
• Windows 7
Список оборудования
Здесь вы можете найти список оборудования, используемого для создания этого учебника.
Эта ссылка будет также показать список программного обеспечения, используемого для создания этого учебника.
Windows Связанные Учебник:
На этой странице мы предлагаем быстрый доступ к списку учебников, связанных с Windows.
Учебник GPO - конфигурация сервера NTP
На контроллере домена откройте инструмент управления групповой политикой.
Создание новой групповой политики.
Введите имя для новой политики группы.
В нашем примере, новый GPO был назван: MY-GPO.
На экране управления групповой политикой расширьте папку под названием «Объекты групповой политики».
Нажмите правой кнопкой мыши на новый объект групповой политики и выберите опцию редактирования.
На экране редактора групповой политики расширьте папку конфигурации компьютера и найдите следующий элемент.
Доступ к папке под названием Time providers.
Включите названный элемент: Включите сервер Windows NTP.
Включите названный элемент: Включите клиента Windows NTP.
Включите названный элемент: Настройте клиента Windows NTP.
На клиентском экране NTP выполните следующую конфигурацию.
Чтобы сохранить конфигурацию групповой политики, необходимо закрыть редактор групповой политики.
Поздравляю! Вы закончили создание GPO.
Учебник GPO - Windows NTP клиента
На экране управления политикой Группы необходимо правильно нажать на желаемую Организационную группу и выбрать возможность связать существующий GPO.
В нашем примере мы собираемся связать групповую политику под названием MY-GPO с подразделением организации под названием NTP SERVERS.
Любой компьютер в этом организационном подразделении станет сервером NTP.
После применения GPO вам нужно подождать 10 или 20 минут.
В течение этого времени GPO будет реплицироваться на другие контроллеры доменов.
После применения этого GPO к компьютеру, проинслив конфигурацию сервера NTP.
Читайте также: