Всем привет! Сегодня я расскажу, как синхронизация времени с контроллером домена, чтобы компьютеры нормально работали с AD. Если время у разных компьютеров будет отличаться хотя бы на 5 минут, то могут возникнуть проблемы с работой некоторых программных модулей.
Содержание
- Через параметры
- Синхронизация с помощью командной строки
- Видео
- Задать вопрос автору статьи
Через параметры
Вообще вам необязательно делать синхронизацию через команду строку или любым другим способом, так как операционная система Windows сама это делает, если у вас правильно настроен домен синхронизации. Давайте проверим это:
Читаем – чем Виндовс 11 лучше 10-ой версии.
- Перейдите в «Параметры» через меню «Пуск».
- Найдите раздел «Время и язык».
- В первом разделе слева, в правом блоке можно просто нажать «Синхронизировать». Выше также будет отображаться сервер времени, который используется в данный момент.
Обратите внимание также, чтобы был правильно установлен «Часовой пояс». Галочку установки автоматического времени лучше включить, но вот пояс лучше ставить вручную. Дата аналогично ставится исходя из сервера.
Синхронизация с помощью командной строки
Также есть дополнительные команды для работы с w32tm. На официальном сайте Microsoft сказано, что устаревшие команды «Net time» – использовать не рекомендуется. Вместо этого используем w32tm и дополнительными атрибуты. Напишу пару примеров.
w32tm /query /source – выводит текущий сервер, с которого идет синхронизация.
w32tm /config /syncfromflags:manual /manualpeerlist: “АДРЕС_СЕРВЕРА” – принудительно указать адрес сервера, с которым будет идти синхронизация времени.
w32tm /config /update – обновляет конфигурационный файл времени.
w32tm /resync /rediscover – выполнить синхронизацию прямо сейчас.
Чтобы синхронизировать время с сервером делаем следующее:
w32tm /query /configuration
Проверяем чтобы в строке «Type» было значение «NT5DS» – это значит, что синхронизация идет с помощью домена AD. Если у вас не так и стоит NTP (локальная синхронизация), то сбрасываем настройки до NT5DS:
w32tm /config /syncfromflags:domhier /update net stop w32time && net start w32time
После этого система сама найдет домен с сервером в иерархии AD и подключиться к нему. Если подключиться не получается. То прописываем команду отмены регистрации и удаления конфига:
w32tm /unregister
Восстанавливаем конфигурацию обратно, как было в настройках:
w32tm /register
Синхронизируем время обратно с Active Directory:
w32tm /config /syncfromflags:domhier /update
Службу теперь надо перезагрузить:
net stop w32time && net start w32time
Апгрейдим настройки:
w32tm /config /update
И теперь можно синхронизировать само время:
w32tm /resync
Проверьте, чтобы служба была запущена и сервер правильно определился:
w32tm /query /status
Основная проблема – это ошибка, что служба не запущена. В таком случае зайдите в «Службы» операционной системы, найдите «Службу времени Windows» и запустите её вручную. После этого уже можно вводить команды дальше. До новых встреч на портале WiFiGiD.RU.
Видео
Windows computers must have their time synchronized with the domain in order to function properly in Active Directory. If the time on a client computer is out of sync with the domain, this can cause a number of problems. The most critical are related to the failure of Kerberos authentication and access to the resource if the time on a client computer is more than 5 minutes off from the domain controller.
In this post we’ll cover how to sync time on a client device with the AD domain and how to troubleshoot when things go wrong.
Understanding the Time Hierarchy in the Active Directory Domain
By default, all domain-joined computers automatically sync their time with the domain controller according to the strict Active Directory domain hierarchy.
- Workstations and member-servers use their authenticating Domain Controller (LogonServer) as the time source (in accordance with AD sites and subnets configuration);
- All domain controllers sync their time DC holding the PDC Emulator FSMO role;
- The PDC synchronizes the time with an external reliable time source (NTP server). The domain controller with the PDC role is the main source of time in the domain.
- In a multi-domain AD forest, the PDC emulator in each domain sync its time with the PDC in the forest root domain.
Hint. Learn more about time syncing in an Active Directory domain using the GPO.
Sync Time with DC on the Domain-Joined Machine
By default, Windows computer should automatically synchronize its time with the nearest domain controller when it joins a domain. In most cases, no additional manual action is required to sync the time with domain.
On a Windows 10/11 computer, check the current time source and sync status. Go to Settings > Time and Language > Date & time > Additional settings and make sure your DC is used as the last time sync source.
There is no graphical interface for managing the Windows Time service (W32Time), so it can be configured from the command line (w32tm command), from the registry (HKLM\System\CurrentControlSet\Services\W32Time\Parameters), or via Group Policy.
To check and configure the time sync settings from the command prompt, use the w32tm command. Get the current time source on a computer:
w32tm /query /source
This command should return the name of one of the AD domain controllers on a domain-joined machine:
View the detailed time setting and last sync time:
w32tm /query /status
Force a time sync with DC:
w32tm /resync /rediscover
If the time synchronization is successful, Event ID 37 should appear in the Event Viewer with the Time-Service source:
The time provider NtpClient is currently receiving valid time data from dc01.theitpro.loc (ntp.d|0.0.0.0:123->192.168.8.10:123).
Make sure that the computer is configured to automatically synchronize its time according to the domain hierarchy:
w32tm /query /configuration
Scroll down to the [TimeProviders] sections and ensure that the Type is set to NTDS5. If not, this may be the cause of time sync problems on a computer.
This value can also be found in the Type parameter under the registry key HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters. The NtpServer value is ignored when NTDS5 is used.
To re-enable time synchronization with a DC for computers in an Active Directory domain
w32tm /config /syncfromflags:domhier /update net stop w32time && net start w32time
This will reset the time sync settings back to NT5DS. This means that the machine should find a time server in the Active Directory hierarchy.
If the Windows client fails to synchronize time with the AD domain controller, you must to reset the Windows Time service configuration.
Unregister w32time service and remove settings:
w32tm /unregister
Register the w32tm service and restore the default settings:
w32tm /register
Enable time sync with AD:
w32tm /config /syncfromflags:domhier /update
Restart the service:
net stop w32time && net start w32time
Update settings:
w32tm /config /update
Synchronize the time:
w32tm /resync
Check the new time sync settings:
w32tm /query /status
Time Sync Issues on Windows Domain Joined Computers
The Windows Time Service (W32Time) is responsible for time synchronization. Check that this service is running on a client with Get-Service:
Get-Service W32Time | Select-Object name,status
UDP port 123 is used for time synchronization on Windows. If the port is closed, the w32tm /resync command will return an error:
Sending resync command to local computer
The computer did not resync because no time data was available.
In this case, the following entry appears in the Event Viewer log:
EventID: 129
Source: Time-Service
NtpClient was unable to set a domain peer to use as a time source because of discovery error. NtpClient will try again in 15 minutes and double the reattempt interval thereafter. The error was: The entry is not found. (0x800706E1)
Check that the w32time service is running on the DC and listening on UDP port 123:
netstat -an | find "UDP" | find ":123"
Then check that the UDP inbound rule named Active Directory Domain Controller – W32Time (NTP-UDP-In) is enabled in Windows Defender Firewall (Control Panel > Windows Firewall > Advanced settings > Inbound rules).
Or check Windows Defender Firewall rule status with PowerShell:
Get-NetFirewallrule -DisplayName 'Active Directory Domain Controller - W32Time (NTP-UDP-In)'|select Enabled
If the rule is disabled, you must enable it:
Get-NetFirewallrule -DisplayName 'Active Directory Domain Controller - W32Time (NTP-UDP-In)'|Enable-NetFirewallrule
It is also possible to force a client to manually synchronize its time with another domain controller.
net time \\ny-dc01 /set /y
Configuring the NTP Client Time Sync on Windows Using GPO
In most cases, time sync with a domain on Windows client doesn’t require administrator intervention. However, if you find that time synchronization is not working properly on client workstations in domain, it is possible to centrally configure client time sync settings using Group Policy.
- Use the gpedit.msc console to change Group Policy settings on a single computer (this is the best solution if you need to solve synchronization problems on a single computer or test new time sync settings). To set up a GPO for multiple domain computers, use the Group Policy Management Console (gpmc.msc);
- Expand the following node in GPO editor: Computer Configuration > Administrative Templates > System > Windows Time Service;
- Enable the Enable Windows NTP Client policy;
- Then enable the Configure NTP Client policy and set the following settings in the Options panel:
NTPServer: your domain name (preferred) or FQDN name of the domain controller with the PDC Emulator role (you can find it with the command: netdom.exe query fsmo)
Type: NT5DS
CrossSiteSyncFlags: 2
ResolvePeerBackoffMinutes: 15
ResolvePeerBackoffMaxTimes: 7
SpecialPollInterval: 64
EventLogFlags: 0 - Restart your computer to apply the new GPO client time settings.
Cyril Kardashevsky
I enjoy technology and developing websites. Since 2012 I’m running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.
Рассмотрим ситуацию, когда вам необходимо синхронизировать время вашей Windows машине или Windows сервере с вашим NTP сервером, или внешне доступным сервером времени. Задача простая, но у новичков в системном администрировании это может вызвать некоторые трудности. Так давайте разберемся!
Небольшое отступление: синхронизировать время на всех узлах сети (сервера, рабочие станции, сетевое оборудование, sip телефоны и т.д.) с единым сервером времени является обязательным, для корректной работы всех служб и сервисов в корпоративной сети. Так, например, это необходимо для корректной работы служб Active Directory, контроллеров доменов, почтовых серверов, рабочих станций, обеспечения корректных прав доступа и безопасности.
Операционные системы семейства Windows содержат службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol).
Для того чтобы синхронизировать ваш сервер или рабочую станцию вам необходимо выполнить следующие команды, в командной строке (CMD), запущенной от имени администратора:
1. w32tm /query /source – проверяем источник, на который настроена служба времени в данный момент. Вывод команды либо покажет нам имя или адрес существующего ntp сервера, или в случае его отсутствия выдаст “Free-running System Clock”.
2. w32tm /config /syncfromflags:manual /manualpeerlist:”source” – данной командой указываем источник эталонного времени (NTP Сервер) . Заменяем source на ip адрес или на FQDN. В доменной сети стоит указывать адрес контроллера домена. В случае правильности выполнения получим вывод “Команда выполнена успешно”.
3. w32tm /config /update – обновляем службу времени, чтобы новые настройки применились.
4. w32tm /resync – запускаем принудительное обновление с новым сервером времени.
Все. Вы синхронизировали службу времени на вашей машине с внешним источником. Данный подход позволит вам добиться того, что все машины в вашей сети будет иметь единое правильное время, что позволит избежать ряда сбоев из за расхождения во времени.
Дополнительные команды управления службой времени:
w32tm /query /source — выводит источник времени, на который настроена служба Windows Time
w32tm /monitor — при запуске на контроллере домена (КД) показывает, насколько отличается время на других КД и на внешнем источнике времени, на который настроен PDC
w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org — настройка в качестве источника времени пула ntp-серверов ru.pool.ntp.org
w32tm /config /update — эту команду необходимо выполнить, чтобы служба времени применила новые настройки
w32tm /resync — выполнение синхронизации времени
w32tm /unregister — отменяет регистрацию службы и удаляет настройки из реестра
w32tm /register — регистрирует службу и восстанавливает настройки по умолчанию
Синхронизация времени в домене Active Directory критически важна для корректного функционирования сервисов и механизмов безопасности. Если в домене не настроена четкач схема синхронизации времени, это может вызвать проблемы с аутентификацией, работой криптографических протоколов, сертификатов при взаимодействии со внутренними и внешними системами. Так, например, Kerberos аутентификация требует, чтобы время между клиентом и сервером не отличалась более чем на пять минут. В этой статье, мы рассмотрим, как должна работать синхронизация времени в домене AD, и как настроить синхронизацию контроллера домена с внешним источником точного времени (NTP).
Содержание:
- Как работает синхронизация времени в домене AD?
- Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
- Настройка групповой политики для синхронизации времени PDC с NTP
- Настройка синхронизации времени на клиентах домена
Как работает синхронизация времени в домене AD?
Схема синхронизации времени в домене Active Directory имеет строгую иерархию:
- Главным источником времени в домене является контроллер домена с FSMO ролью эмулятора PDC.
- С PDC синхронизируют время все остальные контроллеры домена.
- Рядовые сервера и рабочие станции синхронизируют свое время с ближайшими DC согласно топологии AD (по умолчанию компьютеры Windows синхронизируют время внешним
time.windows.com
, но после добавления в домен синхронизация выполняется согласно иерархии домена)
Источник
Для обеспечения точного времени на всех компьютерах домена, нужно настроить синхронизацию PDC с неким внешним источником точного времени по протоколу NTP.
Чтобы определить имя контроллера домена, на котором запущена FSMO роль эмулятора PDC, выполните PowerShell команду:
Get-ADDomain | Select-Object PDCEmulator
Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
По умолчанию PDC синхронизирует время с аппаратными часами материнской платы физического сервера, на котором он запущен. Это можно проверить, выполнив на нем команду:
w32tm /query /source
Local CMOS Clock
указывает, что в качестве источника времени используются локальные часы. При этом в логе Event Viewe на PDC будет регистрироваться событие Event ID 12 от Time-Service:
Time Provider NtpClient: This machine is configured to use the domain hierarchy to determine its time source, but it is the AD PDC emulator for the domain at the root of the forest, so there is no machine above it in the domain hierarchy to use as a time source. It is recommended that you either configure a reliable time service in the root domain, or manually configure the AD PDC to synchronize with an external time source. Otherwise, this machine will function as the authoritative time source in the domain hierarchy. If an external time source is not configured or used for this computer, you may choose to disable the NtpClient.
Если DC запущен на виртуальной машине, в настройках которой включена синхронизация времени с хостом (гипервизором), эта команда вернет:
VM IC Time Synchronization Provider
Поэтому для всех DC нужно отключить синхронизацию времени в настройках ВМ, или запретить DC получать время с хоста, создав параметр реестра:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 0 /f
Перенастроим настройки Windows Time на PDC так, чтобы он использовал в качестве источника времени внешний NTP сервер. В качестве источника времени можно использовать ближайшие к вам сервера NTP из пула проекта https://www.ntppool.org
Для России это будут сервера 0.ru.pool.ntp.org, 1.ru.pool.ntp.org и 2.ru.pool.ntp.org
Проверьте с PDC эмулятора, что доступ к этим NTP серверам доступен (и порт 123/UDP не блокируется файерволами):
w32tm /stripchart /computer:0.ru.pool.ntp.org
Если вы получили ответ от NTP сервера, можно задать эти внешние сервера в качестве источников времени для Primary DC. Выполните команды:
net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8 4.ru.pool.ntp.org,0x8"
w32tm /config /reliable:yes
net start w32time
w32tm /config /update
Выполните синхронизацию времени с NTP:
w32tm /resync
Проверьте, что теперь источником времени на PDC является внешние NTP сервера:
w32tm /query /configuration
Настройка групповой политики для синхронизации времени PDC с NTP
Так как роль эмулятора PDC может быть передана на другой контроллер домена, можно настроить групповую политику, которая будет автоматически применять настройки синхронизации с внешним NTP источников времени на текущем DC с ролью PDC.
Для этого в консоли управления Group Policy Management Console (
GPMC.msc
), создайте новый WMI фильтр групповых политик. Перейдите разделе WMI Filters, создайте фильтр с именем PDC Emulator и WMI запросом:
Select * from Win32_ComputerSystem where DomainRole = 5
Создайте новую GPO, откройте ее и перейдите в раздел 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,0x8 1.ru.pool.ntp.org,0x8 2.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8
- Type: NTP
- CrossSiteSyncFlags: 2
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 1024
- EventLogFlags: 0
Примените созданный ранее фильтр PDC Emulator к GPO.
Осталось прилинковать новую GPO на контейнер Domain Controllers.
Настройка синхронизации времени на клиентах домена
В домене нужно настраивать время только на контроллере домена с ролью PDC. Он должен синхронизировать время с внешним NTP. Специально какие-то отдельные политики или настройки для синхронизации времени на оставшихся DC или компьютерах делать не нужно (это может быть даже вредно). Синхронизация времени должна отлично работать согласно иерархии AD (NT5DS).
На оставшихся (дополнительных) контроллерах домена и остальных клиентах синхронизация времени должна выполняться согласно иерархии домена. Проверим это:
w32tm /query /configuration
Если все настроено правильно, в качестве типа источника времени в разделе
TimeProviders
должен быть задан NT5DS.
Настройки службы времени хранятся в ветке реестра
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
.
Если это не так, можно сбросить настройки синхронизации времени на клиенте и принудительно указать, что нужно использовать схему синхронизации по-умолчанию (по доменной иерархии):
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
w32tm /config /syncfromflags:DOMHIER /update
w32tm /resync
Проверьте что теперь в качестве источника времени на клиенте используется ближайший контроллер домена (LogonServer):
w32tm /query /source
Типовые ошибки синхронизации времени на клиентах Windows описаны в статье.
Материал из support.qbpro.ru
Скрипт для синхронизации времени в Windows:
net time /setsntp:10.10.5.1 net stop w32time && net start w32time net w32tm /resync
или
net w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /update
Запуск от имени Администратора:
runas /user:Администратор "cmd /C net time /setsntp:10.10.5.1 && net stop w32time && net start w32time && w32tm /resync"
Изменение времени в CMD
- Пример скрипта:
runas /user:127.0.0.1\Администратор "cmd /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"
или
echo password|runas /netonly /user:127.0.0.1\Администратор "cmd /A /C chcp 866>nul time net time /setsntp:pool.ntp.org w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org net stop w32time && net start w32time w32tm /config /update pause "
- Пример команды если компьютер в домене:
runas /user:127.0.0.1\Администратор "cmd /A /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"
- Отключение автоматического перехода на летнее/зимнее время» из пользователя с ограниченными правами:
runas /user:127.0.0.1\Администратор "cmd /A /C regedit"
Ищем в реестре:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
создаем ключ DWORD спараметром «1»:
DisableAutoDaylightTimeSet = 1
Время в командной строке
Пример:
runas /user:127.0.0.1\Администратор "cmd /A /C time 21.45"
Time — задает системное время
Выводит и задает системное время.При использовании без параметров, команад time отображает системное время и предлагает
ввести новое время.
Синтаксис time [/t] [/time] [часы:[минуты[:секунды[.сотые]]][{A|P}]]
Параметры
/t
Выводит на экран текущее системное время без предложения ввода нового.
/time
Такой же как параметр /t.
часы
Задает значение часов. Допустимы величины от 0 до 23.
минуты
Задает значение минут. Допустимы величины от 0 до 59.
секунды
Задает значение секунд. Допустимы величины от 0 до 59.
сотые
Задает значение сотых долей секунды. Допустимы величины от 0 до 99.
{A|P}
Задает время до полудня (A.M.) или после полудня (P.M.) для 12-часового формата времени.
Если указано допустимое 12-ти часовое значение, но не задано значение A или P, команда time использует A (до полудня).
/?
Отображает справку в командной строке.
- Пример скрипта синхронизации для Windows Server 2008
@echo off w32tm /config /manualpeerlist:0.pool.ntp.org,0x1 /syncfromflags:MANUAL net stop w32time net start w32time net w32tm /resync
ИСТОЧНИКИ
взято тут