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, когда ваш компьютер не может автоматически синхронизировать свое время с серверами времени time.microsoft.com в Интернете. Из-за некорректного времени на компьютере у вас может возникать ошибка «
Your clock is ahead/ Ваши Часы спешат (отстают)
» при открытии HTTPS сайтов Chrome (и в других браузерах), не корректно работать сторонние программы, и появляться различные другие неприятности.
Если попытаться вручную выполнить синхронизацию времени из панели управления Windows (Control Panel -> Date and Time -> Internet Time -> Change Settings -> Update now), появляется ошибка:
An error occurred while windows was synchronizing with time.windows.com. The peer is unreachable.
Также здесь может быть ошибка:
The peer is unresolved.
Проверьте, что у вас настроена автоматическая синхронизация времени с NTP серверами в Интернете. Перейдите в раздел Settings -> Time and Language -> Date and Time (можно перейти в этот раздел с помощью команды быстрого доступа по URI:
ms-settings:dateandtime
). Проверьте, что здесь включена опцию Set time automatically и выполните синхронизацию, нажав кнопку Sync now в разделе Additional settings.
Если синхронизация времени с Интернетом не работает, проверьте, с какого внешнего NTP сервера должен получить время ваш компьютер. Выполните команду:
w32tm /query /peers
По умолчанию компьютеры в рабочих группах (не присоединенные к домену Active Directory) настроены на получение времени с серверов time.windows.com.
Если при запуске этой команды появилась ошибка “The following error occurred: The service has not been started. (0x80070426)”, проверьте состояние службы Windows Time. Она должна быть настроена на автоматический или ручной запуск. Можете проверить состояние службы с помощью PowerShell или консоли services.msc:
Get-Service w32time| Select DisplayName,Status, ServiceName,StartType
Перезапустите службу:
Restart-Service -Name w32time
Если служба отключена, включите ее.
Проверьте, что с вашего компьютера доступен хост time.microsoft.com.
Сначала проверьте, что ваш компьютер может разрешить это имя в IP адрес:
nslookup time.windows.com
Если ваш компьютер не может отрезолвить это имя в IP адрес (ошибка синхронизации времени The peer is unresolved), значит в настройках сетевого адаптера вашего компьютера указан DNS сервер, который не доступен, или изолирован от интернета. Попробуйте сменить адрес первичного DNS сервера на DNS сервер Google (8.8.8.8). Можно изменить настройки DNS для сетевого адаптера в Windows с помощью PowerShell.
Вывести список сетевых интерфейсов:
Get-NetAdapter
Изменить настройки DNS для сетевого адаптера с ifIndex 10:
Set-DNSClientServerAddress –InterfaceIndex 10 –ServerAddresses 8.8.8.8
Проверьте доступность сервера с помощью ping:
ping time.windows.com
И затем проверьте, что сервер времени Microsoft доступен по порту NTP (UDP 123). Для проверки доступности UDP порта можно использовать утилиту portquery или можно напрямую обратиться к серверу и запросить у него текущее время:
w32tm /stripchart /computer:time.windows.com
Если команда вернет ошибку error: 0x800705B4, значить указанный NTP сервер не доступен. Проверьте, что в Windows открыт исходящий порт UDP/123 для протокола NTP (по умолчанию порт должен быть открыт). Вы можете принудительно открыть порт в Windows Defender Firewall с помощью PowerShell:
New-NetFirewallRule -DisplayName "AllowOutNTP" -Direction Outbound -Protocol UDP -RemotePort 123 -Action Allow
Enable-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 /update
w32tm /resync
Проверьте, что ваш компьютер успешно получил время с нового источника времени (NTP сервера):
w32tm /query /status
Если ничего не помогло, попробуйте полностью сбросить настройки службы Windows Time:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
Выполните синхронизацию времени:
w32tm /resync
Также вы можете добавить NTP сервер в список серверов времени и выполнить синхронизацию из панели управления Windows. Перейдите в Settings -> Time & language -> Date & time -> Additional clocks –> Internet Time
Убедитесь, что включена опцию Synchronize with an Internet time, добавьте новый сервер time.nist.gov и нажмите кнопку Update Now.
Вы можете добавить NTP сервера в этот список через реестр HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers.
Для автоматической синхронизации времени в Windows используется отдельно задание в планировщике Task Scheduler. Запустите консоль taskschd.msc и перейдите в раздел Task Scheduler (Local) -> Task Scheduler Library -> Microsoft -> Windows -> Time Synchronization. Проверьте, что задание SynchronizeTime включено.
Также вы можете проверить состояние задания Task Scheduler с помощью PowerShell:
Get-ScheduledTask SynchronizeTime
Чтобы включить его:
Get-ScheduledTask SynchronizeTime|Enable-ScheduledTask
Всем привет! Сегодня я расскажу, как синхронизация времени с контроллером домена, чтобы компьютеры нормально работали с 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.
Видео
Проблема в следующем:
при введении компьютера в домен не синхронизируется время, из-за этого выходят ошибки:
— Часы данного сервера не синхронизированы с часами основного контроллера домена, при открытии файловой шары по имени компьютера (по IP всё работает).
— Синхронизация не выполнена поскольку нет доступных данных о времени, при выполнении команды w32tm /resync /rediscover на клиентской машине
— Нет доступа к компьютеру. Ошибка: Отказано в доступе. При попытке открыть управление локалюными пользователями и группами удаленно через консоль mmc.
Нужно выполнить на клиентской машине команды:
Узнать с кем синхронизируется время: net time /QUERYSNTP
Назначить для синхронизации контроллер домена: net time /SETSNTP:MYDOMAIN.NET
Синхронизировать время с указанным ранее сервером: net time /set
Но вот прикол, эта команда работает лишь в случае незначительного расхождения во времени между клиентом и контроллером домена!
ДОБАВЛЕНО 18 дек. 2015
При попытке проделать это в очередной раз, мой компьютер заявил мол команды устарели и теперь пользуйтесь программой w32tm.exe
Поэтому привожу алгоритм:
запускаем cmd с правами админа
смотрим с кем система синхронизируется
w32tm /query /peersзаставляем синхронизироваться только с контроллером домена
w32tm /config /syncfromflags:domhier /updateсинхронизировать сейчас
w32tm /resync /rediscover
(Просмотрено 18 138 раз, 8 раз за сегодня)
Настроил в AD ntp сервер.
Вот статус с сервера:
C:\Users\Администратор>w32tm /query /status
Индикатор помех: 0(предупреждений нет)
Страта: 1 (основная ссылка - синхронизирована по радиочасам)
Точность: -23 (119.209ns за такт времени)
Задержка корня: 0.0000000s
Дисперсия корня: 10.0000000s
Идентификатор опорного времени: 0x4C4F434C (имя источника: "LOCL")
Время последней успешной синхронизации: 27.11.2020 9:52:14
Источник: Local CMOS Clock
Интервал опроса: 6 (64s)
Вот конфигурация:
C:\Users\Администратор>w32tm /query /configuration
[Настройка]
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: 0 (Политика)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 1024 (Политика)
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 (Локально)
Мне нужно чтобы контроллер домена использовал локальное время сервера (доступа к внешнему источнику нет) и локальные машины синхронизировали время с контроллером.
Вот статус с удаленной машины:
C:\Users\ivanov.ivan.RDS.000>w32tm /query /status
Индикатор помех: 0(предупреждений нет)
Страта: 2 (вторичная ссылка - синхронизирована с помощью (S)NTP)
Точность: -6 (15.625ms за такт времени)
Задержка корня: 0.0010133s
Дисперсия корня: 13.8127846s
Идентификатор опорного времени: 0x656464C3 (IP-адрес источника: 101.100.100.195)
Время последней успешной синхронизации: 27.11.2020 10:21:03
Источник: WIN-AQLONANDMP0.rds.wr
Интервал опроса: 10 (1024s)
ПК который работает на Win-10 вроде нормально синхронизируется, все ОК…. Но вот ПК на Win-7 почему-то показывает разницу во времени 1 час, т.е. на сервере 10:30 а на машине с Win-7 9:30 Почему так? Или это какие-то проблемы на машине с Win-7?
И 2-ой вопрос на самом сервере я не могу изменить системное время если кликаю «Настроить время и дату» справа где часы, пишет «Некоторые параметры скрыты или управляются вашей организацией». Как изменять время, я захожу на сервер с правами администратора. В настройках AD я не нашел…. Или время берется из BIOS?