Служба времени Windows, несмотря на кажущуюся простоту, является одной из основ, необходимых для нормального функционирования домена Active Directory. В правильно настроенной среде AD служба времени работает следующим образом: компьютеры пользователей получают точное время от ближайшего контроллера домена, на котором они зарегистрировались. Все контроллеры домена в свою очередь получают точное время от DC с FSMO ролью «Эмулятор PDC», а контролер PDC синхронизирует свое время с неким внешним источником времени. В качестве внешнего источника времени может выступать один или несколько NTP серверов, например time.windows.com или NTP сервер вашего Интернет-провайдера. Также нужно отметить, что по умолчанию клиенты в домене синхронизируют время с помощью службы времени Windows (Windows Time), а не с помощью протокола NTP.
Если вы столкнулись с ситуацией, когда время на клиентах и контроллерах домена различается, возможно, в вашем домене есть проблемы с синхронизацией времени и эта статья будет вам полезна.
В первую очередь выберите подходящий NTP сервер, который вы могли бы использовать. Список общедоступных NTP серверов доступен на сайте . В нашем примере мы будем использовать NTP сервера из пула ru.pool.ntp.org:
Настройка синхронизации времени в домене с помощью групповых политик состоит из двух шагов:
1) Создание GPO для контроллера домена с ролью PDC2) Создание GPO для клиентов (опционально)
w32tm /query /status
The command /query is unknown.
In a different machine, I got:
Then I tried:
ERROR: The system was unable to find the specified registry key or value.
net time /querysntp
This computer is not currently configured to use a specific SNTP server.
In another machine, I got the help page, saying also:
The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.
w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update
net time /setsntp:10.0.0.5
as instructed here. (10.0.0.5 being my local NTP server). If you’re not using a local NTP server, you can use the generic one:
w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update
w32tm /config /update
w32tm /resync /rediscover
w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time
NOTE 2: if the NTP service doesn’t automatically start on reboot, it might be due to its start settings, as described here: depending on your windows, it might be set to start only when it joins a domain. You can check with:
sc qtriggerinfo w32time
If it’s configured to start when you join a domain, and you don’t have a domain set up in your machine, it will not start the service and set the time. It probably doesn’t join a domain because you don’t want it to. In any case, just change which trigger starts it. For example, to start when the machine has network (and therefore is able to access the server), do:
sc triggerinfo w32time start/networkon stop/networkoff
Синхронизация времени – это достаточно важный и, зачастую, критичный аспект работы всех компьютерных систем в сети. По-умолчанию, клиентские компьютеры в сети Microsoft Windows синхронизируют свое время со своим контроллером домена, а контроллер домена берет время с контроллера домена, выполняющего роль мастера операций. В свою очередь, сервер с ролью мастера операций домена Active Directory (PDC), должен синхронизировать свое время с неким внешним источником времени. Рекомендуется использовать список NTP серверов, перечисленных на сайте NTP Pool Project . Прежде чем приступить к настройке синхронизации времени с внешним сервером, не забудьте открыть на своем межсетевом экране стандартный NTP порт — UDP 123 port (нужно разрешить как входящее, так и исходящее соединение).
Настройка внешнего источника времени для домена была протестирована и отработано на контроллере домена под управлением Windows Server 2008 R2 (Build 7600). Будь в команде сетивых администраторов портал для всех портал для тебя.
Формат команды для проверки доступности NTP сервера
w32tm /stripchart /computer:доменное.имя_ИЛИ_IP. NTP.сервера /dataonly /samples:5
Проверим сервер time.windows.com
w32tm /stripchart /computer:time.windows.com /dataonly /samples:5
Я могу ошибаться, но похоже Windows Server не разрешает устанавливать несколько NTP серверов через GUI.
К счастью я нашёл отличный .bat’ник на github
Для наглядности я ввёл все команды из примера выше вручную

Теперь можно посмотреть список наших NTP серверов (/peers: отображение списка узлов и их состояние)
w32tm /query /peers

Посмотреть статус синхронизации с NTP (/status: отображение состояния службы времени Windows)

Посмотреть конфигурацию NTP (/configuration: отображение конфигурации времени выполнения и места, где берется параметр).
w32tm /query /configuration

Ещё несколько полезных команд.
Показать текущий часовой пояс (time zone)
Вернуть всё в default
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
NTP это сетевой протокол времени, который синхронизирует часы между компьютерными системами по сети.
NTP-сервер поддерживает синхронизацию всех серверов в вашей организации с точным временем выполнения заданий.
NTP-клиент синхронизирует свои часы с сетевым сервером времени.
Мы уже написали статью об установке и настройке NTP-сервера и клиента.
Я предполагаю, что мы уже настроили NTP-сервер и NTP-клиент, используя вышеуказанные ссылки.
Теперь, как проверить, правильно ли работает настройки NTP?
В Linux доступны три команды для проверки синхронизации NTP.
В этой статье мы расскажем вам, как проверить синхронизацию NTP с помощью всех этих команд.
Как проверить состояние NTP с помощью команды ntpq?
Утилита ntpq используется для мониторинга операций NTP-демона ntpd и определения производительности.
Программа может быть запущена в интерактивном режиме или управляться с помощью аргументов командной строки.
Он выводит список пиров, которые соединились, отправив несколько запросов на сервер.
Если NTP работает правильно, вы получите вывод, аналогичный приведенному ниже.
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*CentOS7.2daygee 133.243.238.163 2 u 14 64 37 0.686 0.151 16.432
Как проверить состояние NTP с помощью команды ntpstat?
ntpstat сообщит о состоянии синхронизации демона NTP (ntpd), работающего на локальной машине.
Если будет установлено, что локальная система синхронизирована с эталонным источником времени, ntpstat сообщит о приблизительной точности времени.
Команда ntpstat возвращает три вида кода состояния на основе синхронизации NTP. Подробности ниже.
# ntpstat
synchronised to NTP server (192.168.1.8) at stratum 3
time correct to within 508 ms
polling server every 64 s
Как проверить состояние NTP с помощью команды timedatectl?
Команда timedatectl используется для запроса и изменения системного времени и его настроек в системе systmed.
# timedatectl
или
# timedatectl status
Local time: Thu 2019-05-30 05:01:05 CDT
Universal time: Thu 2019-05-30 10:01:05 UTC
RTC time: Thu 2019-05-30 10:01:05
Time zone: America/Chicago (CDT, -0500)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2019-03-10 01:59:59 CST
Sun 2019-03-10 03:00:00 CDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2019-11-03 01:59:59 CDT
Sun 2019-11-03 01:00:00 CST
Chrony это замена NTP-клиента.
Он может синхронизировать системные часы с большей точностью и может быть особенно полезен для систем, которые не подключены к сети все время.
chronyd меньше, он использует меньше памяти и пробуждает процессор только при необходимости, что лучше для экономии энергии.
Он может работать хорошо, даже если сеть перегружена в течение более длительных периодов времени.
Chrony — альтернативный клиент и сервер NTP для Unix-подобных систем
Вы можете столкнуться с ошибкой синхронизации времени в Windows, когда ваш компьютер не может автоматически синхронизировать свое время с серверами времени time.microsoft.com в Интернете. Из-за некорректного времени на компьютере у вас может возникать ошибка «
Your clock is ahead/ Ваши Часы спешат (отстают)
» при открытии HTTPS сайтов Chrome (и в других браузерах), не корректно работать сторонние программы, и появляться различные другие неприятности.
An error occurred while windows was synchronizing with time.windows.com. The peer is unreachable.
Также здесь может быть ошибка:
The peer is unresolved.

Если синхронизация времени с Интернетом не работает, проверьте, с какого внешнего NTP сервера должен получить время ваш компьютер. Выполните команду:
По умолчанию компьютеры в рабочих группах (не присоединенные к домену Active Directory) настроены на получение времени с серверов time.windows.com.
Restart-Service -Name w32time
Если служба отключена, включите ее.

Проверьте, что с вашего компьютера доступен хост time.microsoft.com.
Если ваш компьютер не может отрезолвить это имя в IP адрес (ошибка синхронизации времени The peer is unresolved), значит в настройках сетевого адаптера вашего компьютера указан DNS сервер, который не доступен, или изолирован от интернета. Попробуйте сменить адрес первичного DNS сервера на DNS сервер Google (8.8.8.8). Можно изменить настройки DNS для сетевого адаптера в Windows с помощью PowerShell.
Вывести список сетевых интерфейсов:

Изменить настройки DNS для сетевого адаптера с ifIndex 10:
Set-DNSClientServerAddress –InterfaceIndex 10 –ServerAddresses 8.8.8.8
Проверьте доступность сервера с помощью ping:

Если команда вернет ошибку error: 0x800705B4, значить указанный NTP сервер не доступен. Проверьте, что в Windows открыт исходящий порт UDP/123 для протокола NTP (по умолчанию порт должен быть открыт). Вы можете принудительно открыть порт в Windows Defender Firewall с помощью PowerShell:
New-NetFirewallRule -DisplayName “AllowOutNTP” -Direction Outbound -Protocol UDP -RemotePort 123 -Action AllowEnable-NetFirewallRule -DisplayName AllowOutNTP
Также убедитесь, что исходящий NTP трафик не блокируется на сетевом уровне (провайдера, вашего файервола или другими сетевыми устройствами).
Если этот NTP сервер не доступен, вы можете использовать другой NTP сервер.
Можно указать
time.nist.gov
или ближайший к вам NTP сервер, который можно получить на сайте
https://www.ntppool.org
.
Можно изменить адрес вашего NTP сервера с помощью командной строки:
w32tm /config /manualpeerlist:time.nist.gov,0x1 /syncfromflags:manual /reliable:yes /update
Перезапустите службу времени (в данном примере вы запустим несколько команд в одну строку):
net stop w32time && net start w32time
Затем выполните синхронизацию времени:
w32tm /config /updatew32tm /resync
Проверьте, что ваш компьютер успешно получил время с нового источника времени (NTP сервера):
Если ничего не помогло, попробуйте полностью сбросить настройки службы Windows Time:
net stop w32timew32tm /unregisterw32tm /registernet start w32time
Убедитесь, что включена опцию Synchronize with an Internet time, добавьте новый сервер time.nist.gov и нажмите кнопку Update Now.
Вы можете добавить NTP сервера в этот список через реестр HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionDateTimeServers.


Также вы можете проверить состояние задания Task Scheduler с помощью PowerShell:
Чтобы включить его:
Настройка политики синхронизации 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.
Нас интересуют три политики:

В настройках политики Configure Windows NTP Client укажите следующие параметры:
- CrossSiteSyncFlags: 2
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 3600
- EventLogFlags: 0
Совет. Не забудьте настроить межсетевой экран таким образом, чтобы сервер PDC мог получить доступ к внешним NTP серверам по протоколу NTP (UDP порт 123).

Примечание. Обратите внимание на синтаксис в поле NtpServer. Формат указания нескольких NTP серверов такой:ntsrv1.org,0x1 ntpsrv2.org,0x1 (разделитель пробел). На скриншоте указаны ошибочные данные!
Примените созданный ранее фильтр PDC Emulator к данной политике.
Совет. Найти имя сервера с ролью PDC можно с помощью команды:
netdom query fsmo
Осталось обновить политики на контроллере PDC:
gpupdate /force
Вручную запустите синхронизацию времени:
w32tm /resync
Проверьте текущие настройки NTP:
w32tm /query /status
Совет. В том случае, если время не синхронизировалось, перезапустите службу времени Windows и сбросьте текущие настройки:
net stop w32timew32tm.exe /unregisterw32tm.exe /registernet start w32time
Настройка синхронизации времени на клиентах домена
В среде Active Directory по умолчанию клиенты домена синхронизируют свое время с контролерами домена (опция Nt5DS – синхронизировать время согласно иерархии домена). Как правило, эта схема работает и не требует перенастройки. Однако при наличии проблем с синхронизацией времени на клиентах домена, можно попробовать принудительно назначить сервер времени для клиентов с помощью GPO.
В качестве сервера NTP укажите имя или ip адрес PDC, например msk-dc1.winitpro.ru,0x9, а в качестве типа синхронизации — NT5DS

Обновите настройки групповых политик на клиентах и проверьте, что клиенты успешно синхронизировали свое время с PDC.
Совет. Указанная схема применима только к небольшим доменам. Для больших распределенных доменов с большим количеством DC и сайтов придется создать отдельную политику для каждого сайта, чтобы клиенты синхронизировали свое время с DC в сайте.




