Что делать, если ваш компьютер с Windows 10 не выполняет синхронизацию времени? А в журнале событий системы находим ошибку Time-Service с кодом 158 и таким описанием проблемы:
«Поставщик времени «VMICTimeProvider» указал, что текущее аппаратное обеспечение и операционная среда не поддерживаются, и их работа остановлена. Это поведение ожидаемо для VMICTimeProvider в средах non-HyperV-guest. Это поведение может быть ожидаемо для текущего поставщика в текущей операционной среде.«
И если для проверки выполнить: w32tm /query /peers , то узлы найдены не будут.
Вероятно, ПК настроен для синхронизации через контроллер домена. Такое поведение выставляется по умолчанию, не спрашивайте «почему». ( Тип по умолчанию: NT5DS. )
Нам нужно настроить проверку подлинности как для локального компьютера, и задать тип сервера NTP.
Нажимаем комбинацию клавиш Win+R запускаем групповую политику gpedit.msc и заходим в:
Конфигурация компьютера — Административные шаблоны — Система — Служба времени Windows — Поставщики времени
(Computer Configuration — Administrative Templates — System — Windows Time Service — Time Providers)
Далее смотрим параметры:
Включить NTP-клиент Windows — Включено.
Настроить NTP клиент — Включено.
Выставить опции:
NTP-сервер: time.windows.com,0x09
Тип: NTP
CrossSiteSyncFlags: 2
ResolvePeerBackoffMinutes: 15
ResolvePeerBackoffMaxTimes: 7
SpecialPollInterval: 1024
EventLogFlags: 1
EventLogFlags можно выставить 3, тогда в журнал будут записываться как скачки времени, так и изменения источника времени.
Затем в реестре можно выключить «VMICTimeProvider», но это не обязательно:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider]
«Enabled»=dword:00000000
В логах на контроллере домена начал замечать ошибка с ntp
«Служба времени прекратила объявлять себя как источник точного времени.»
Прочитал статью,Настройка ntp. Проверил все настройки и ничего криминального я не нашел, кроме того синхронизация происходит с сервером по умолчанию time.windows.com,0x9
Мне кажется стоит указать ntp сервер, тот который находится немного ближе чем, сервер по умолчанию.
Прошу совета.
-
Вопрос задан
-
2152 просмотра
Accurate time synchronization is vital for the smooth operation of computer systems, especially in environments where multiple devices interact over a network. Network Time Protocol (NTP) ensures that all devices maintain the correct time, which is crucial for logging events, security protocols, and the proper functioning of time-dependent applications. In Windows, NTP settings can be managed through the Windows Registry, providing advanced users and IT professionals with granular control over time synchronization behaviors. This guide will walk you through understanding and configuring NTP settings via the Windows Registry.
Understanding NTP and Its Importance
Network Time Protocol (NTP) is a networking protocol designed to synchronize the clocks of computers over packet-switched, variable-latency data networks. Accurate timekeeping is essential for:
- Security: Ensures the validity of authentication tokens and encryption protocols.
- Logging: Provides accurate timestamps for system and application logs.
- Data Integrity: Prevents issues in databases and file systems that rely on precise time stamps.
- Network Operations: Coordinates tasks and schedules across multiple devices.
Without proper time synchronization, discrepancies can lead to security vulnerabilities, data inconsistencies, and operational inefficiencies.
Windows Time Service Overview
Windows uses the Windows Time Service (W32Time) to synchronize the system clock with configured time sources. By default, Windows Time Service is configured to use NTP servers to keep the system time accurate. The service can operate in different modes, such as:
- NTP Client: Synchronizes the system time with external NTP servers.
- NTP Server: Provides time synchronization services to other devices on the network.
Understanding and configuring the Windows Time Service via the Registry allows for customized synchronization settings tailored to specific network environments.
Locating NTP Settings in the Windows Registry
The NTP settings are primarily located within the Windows Registry under the following path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Within this key, several values determine how the Windows Time Service operates, including the NTP server addresses, synchronization frequency, and other related settings.
Key Registry Values for NTP Configuration:
- NtpServer: Specifies the list of NTP servers the system will synchronize with.
- Type: Defines the synchronization type (e.g., NTP, NT5DS).
- AnnounceFlags: Determines the role of the computer in the time synchronization hierarchy.
- SpecialPollInterval: Sets the interval between synchronization attempts.
Warning: Editing the Windows Registry can have significant impacts on your system. Always back up the Registry before making any changes.
Steps to Configure NTP Settings:
1. Open Registry Editor
To edit the Registry, you’ll use the Registry Editor (regedit), a built-in Windows utility.
- Press
Win + R
to open the Run dialog box. - Type
regedit
and pressEnter
. - If prompted by User Account Control (UAC), click
Yes
to allow Registry Editor to make changes.
2. Navigate to the NTP Settings
In Registry Editor, browse to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
3. Modify the NtpServer Value
- Double-click on
NtpServer
in the right pane. - Enter the NTP servers you wish to use, separated by spaces. Each server should be followed by a comma and a flag. For example:
time.windows.com,0x9 time.nist.gov,0x9
- The flag
0x9
indicates that the server should be used for synchronization and that it’s a reliable time source.
- The flag
4. Set the Synchronization Type
- Double-click on
Type
. - Set the value to
NTP
to specify that the system should use the NTP server(s) defined inNtpServer
.NTP
- Other possible values include:
NT5DS
: Synchronizes with the domain hierarchy.AllSync
: Allows synchronization with all available time sources.
- Other possible values include:
5. Adjust the Polling Interval (Optional)
- Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
- Double-click on
SpecialPollInterval
. - Set the value (in seconds) to define how often the system will poll the NTP server. For example, to set it to 1 hour:
3600
6. Enable the NTP Client
- Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
- Double-click on
Enabled
. - Set the value to
1
to enable the NTP client.
Example Configuration
Suppose you want to configure your system to synchronize with pool.ntp.org
every 2 hours. Here’s how you can set it up:
- Set NtpServer:
pool.ntp.org,0x9
- Set Type:
NTP
- Set SpecialPollInterval:
7200
- Ensure Enabled is set to 1.
Restarting the Windows Time Service
After making changes to the Registry, it’s essential to restart the Windows Time Service to apply the new settings.
Steps to Restart the Service:
- Open Command Prompt as Administrator:
- Press
Win + X
and select Command Prompt (Admin) or Windows PowerShell (Admin).
- Press
- Stop the Windows Time Service:
net stop w32time
- Start the Windows Time Service:
net start w32time
- Resynchronize the Time (Optional):
w32tm /resync
- Note: If you encounter errors, ensure that the Windows Time Service is configured correctly and that there are no network issues preventing synchronization.
Precautions and Best Practices
- Backup the Registry: Before making any changes, create a backup to prevent potential system issues.
- In Registry Editor, right-click on the
W32Time
key and select Export. Save the.reg
file to a safe location.
- In Registry Editor, right-click on the
- Use Trusted NTP Servers: Only use reputable NTP servers to ensure accurate and secure time synchronization.
- Avoid Frequent Polling: Setting the polling interval too low can lead to unnecessary network traffic and may be flagged as suspicious activity.
- Limit Registry Editing to Advanced Users: Incorrect modifications can cause system instability. If unsure, seek assistance from IT professionals.
Troubleshooting NTP Issues
If you encounter problems with time synchronization after configuring NTP settings, consider the following troubleshooting steps:
1. Verify NTP Server Accessibility
Ensure that the NTP servers you specified are reachable and operational.
- Use the
ping
command to test connectivity:ping pool.ntp.org
2. Check Windows Time Service Status
Ensure that the service is running:
sc query w32time
3. Review Event Logs
- Open Event Viewer (
Win + X
> Event Viewer). - Navigate to Windows Logs > System and look for events related to W32Time.
4. Force Time Synchronization
Use the following command to force synchronization:
w32tm /resync /force
5. Reset Windows Time Service Configuration
- Stop the service:
net stop w32time
- Unregister the service:
w32tm /unregister
- Register the service again:
w32tm /register
- Start the service:
net start w32time
- Reconfigure NTP settings as needed.
Conclusion
Proper time synchronization is essential for the reliable and secure operation of Windows systems within any networked environment. By configuring NTP settings through the Windows Registry, advanced users can tailor time synchronization behaviors to meet specific requirements. However, caution must be exercised when editing the Registry to prevent system instability. Always ensure you have backups and understand the implications of the changes you make.
В операционных системах Windows за синхронизацию времени отвечает служба времени Windows, она же w32time. Эта служба обеспечивает работу серверной, и клиентской частей. Иными словами один и тот же компьютер может выступать в роли сервера и клиента одновременно.
Служба времени Windows не имеет графического интерфейса. Настройка производится через CMD утилитой w32tm, ручной правкой реестра, или через групповые политики.
Утилита w32tm меняет параметры в разделе
HKLM\SYSTEM\CurrentControlSet\Services\W32Time
Групповые политики создают раздел в
HKLM\SOFTWARE\Policies\Microsoft\W32Time
Параметры, созданные групповыми политиками, имеют больший приоритет, и перекрывают параметры по умолчанию.
Рассмотрим содержимое подраздела Parameters компьютера, находящегося в рабочей группе
и для доменного компьютера
Ключ NtpServer определяет список серверов времени, с которыми будет происходить синхронизация. По умолчанию указан адрес time.windows.com,0x9. При указании более одного сервера времени, адреса нужно разделять пробелами.
Параметр 0x9, является суммой 0x1 и 0x8.
0x1 – SpecialInterval, использование специального интервала опроса.
0x2 – режим UseAsFallbackOnly.
0x4 – SymmetricActive, симметричный активный режим.
0x8 – Client, отправка запроса в клиентском режиме.
Специальный интервал опроса указан в ключе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
и составляет 3600 секунд. То есть синхронизация происходит каждый час.
Ключ Type определяет тип синхронизации, и имеет следующие значения:
NoSync- служба времени не синхронизируется с другими источниками.
NTP- служба времени выполняет синхронизацию с серверами, указанными в записи реестра NtpServer.
NT5DS- служба времени выполняет синхронизацию на основе иерархии домена.
AllSync — служба времени использует все доступные механизмы синхронизации.
В случае с компьютером из рабочей группы, используется тип NTP, то есть синхронизация времени происходит с сервером time.windows.com, указанном в ключе NtpServer.
Доменный компьютер использует тип NT5DS. В данном случае синхронизация времени происходит с контроллером домена, на котором авторизовался компьютер. Контроллеры синхронизируют свое время с контроллером, являющимся владельцем роли PDC Emulator. Владелец роли PDC Emulator, также использует тип NT5DS и синхронизирует свое время с локальным часами, получившими время от CMOS схемы, расположенной на материнской плате. Минус в том, что время полученное от CMOS схемы постоянно «съезжает» относительно реального. Чтобы такого не происходило, на корневом контроллере с ролью PDC Emulator, меняют тип на NTP и в NtpServer указывают список внешних серверов времени.
На корневом контроллере домена, с ролью PDC Emulator, откроем CMD и выполним команду
c:\>w32tm /config /manualpeerlist:"0.ru.pool.ntp.org,0x9 1.ru.pool.ntp.org,0x9 2.ru.pool.ntp.org,0x9 3.ru.pool.ntp.org,0x9" /syncfromflags:MANUAL /update
/manualpeerlist — задает список адресов источников времени. Этот список будет добавлен в значение уже известного ключа NtpServer.
/syncfromflags — определяет источник синхронизации. Этот параметр меняет значение ключа Type. Возможные варианты:
MANUAL — синхронизация с узлами из заданного вручную списка. Аналогичен значению NTP.
DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии. Аналогичен значению NT5DS.
NO — без синхронизации. Аналогичен значению NoSync.
ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена. Аналогичен значению AllSync.
/update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.
Может ли компьютер выступать в роли сервера времени, определяется следующим ключом
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
У контроллера данный ключ имеет значение 1, у компьютера 0. Иными словами любой контроллер домена выступает в качестве сервера времени.
За то, как служба времени будет корректировать время на клиенте, отвечает ключ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxAllowedPhaseOffset
У компьютера, находящегося в рабочей группе, значение ключа MaxAllowedPhaseOffset равно 1-ой секунде. У доменного компьютера 300 секунд. Если разница во времени между клиентом и сервером времени будет больше, чем значение ключа MaxAllowedPhaseOffset, то служба времени сразу поменяет время на клиенте, на время, установленное на сервере времени. Если разница во времени меньше, то корректировка часов будет происходить постепенно. Это сделано, чтобы предотвратить сбои служб, чувствительных к сдвигам времени. С другой стороны 300 секунд, это 5 минут, или максимально допустима разница во времени, для протокола Kerberos.
Чтобы изменить настройки службы времени через групповые политики, нужно создать фильтр WMI, для нацеливания политики на корневой контроллер домена, с ролью PDC Emulator. Для этого нужно открыть оснастку «Управление групповой политикой», нажать на раздел «Фильтры WMI» правой кнопкой мыши и выбрать «Создать». В поле имя нужно написать название фильтра, например, «PDC Emulator». Далее нужно нажать кнопку «Добавить» и вставить WMI запрос
Select * from Win32_ComputerSystem where DomainRole = 5
затем нужно нажать «Ok» и «Сохранить».
Создадим политику, нажмем правой кнопкой мыши на раздел «Domain Controllers» и выберем «Создать объект групповой политики…», назовем его «PDC Emulator Time Sources». Нажмем правой кнопкой мыши по созданному объекту, выберем «Изменить». Откроем раздел «Конфигурация компьютера->Политики->Административные шаблоны->Система->Служба времени Windows->Поставщики времени». Выберем параметр «Настроить NTP-клиент Windows». В поле NtpServer вставим адреса серверов времени
0.ru.pool.ntp.org,0x9 1.ru.pool.ntp.org,0x9 2.ru.pool.ntp.org,0x9 3.ru.pool.ntp.org,0x9
В поле Type нужно выбрать значение «NTP», затем нажать «Ок» и закрыть окно «Редактор управления групповыми политиками».
После этого нужно выбрать созданную политику «PDC Emulator Time Sources» и в поле «Фильтр WMI» выбрать созданный ранее фильтр «PDC Emulator»
Диагностика
Принудительно синхронизировать время можно командой
c:\>w32tm /resync
Посмотреть текущий источник времени можно командой
c:\>w32tm /query /source
Эта команда показывает текущий источник времени, время синхронизации и прочую информацию
c:\>w32tm /query /status
Эта команда показывает данные о всех источниках времени
c:\>w32tm /query /peers
Разницу во времени между компьютером и источником времени можно посмотреть командой
c:\>w32tm /monitor
Для просмотра текущей конфигурации используется команда
c:\>w32tm /query /configuration
Перезапустить службу времени можно командой
c:\>net stop w32time && net start w32time
Если что-то пошло не так, можно перерегистрировать службу времени. При этом создастся заново вся ветка реестра, относящаяся к службе времени
c:\>net stop w32time c:\>w32tm /unregister c:\>w32tm /register c:\>net start w32time
Для быстрой синхронизации времени с определенным хостом, можно воспользоваться командой
c:\>NET TIME \\DC1.4SKILL.LOC /SET /Y
Если выполнить команду на доменном компьютере без указания хоста, с которым нужно синхронизировать время, синхронизация произойдет с доменным сервером времени.
///////////////////////////////////FOR/////DOMAIN/////2008//////////////////////////////////////////////////////////////////////
На днях вновь озаботился вопросом синхронизации времени на компьютерах в домене Windows 2008. Теоретически, нет никакой проблемы, если первый контроллер домена будет сверять время с железом, на котором стоит. Однако моя практика показала, что когда DC стоит на виртуальной машине, а платформа виртуализации (конкретно, была использована VMWare ESXi 5) сверяет время, как и все остальные, с DC, то время в домене начинает сильно убегать. В любом случае, намного лучше и удобнее, если время не только синхронизировано внутри самого домена, но и является достоверным.
Итак, настройка синхронизации времени в домене Windows 2008.
0. Прежде чем настраивать синхронизацию времени нужно обеспечить прохождение трафика от PDC в интернет и обратно по порту UDP 123.
1. Определяем основной контроллер домена. Обычно администратор прекрасно знает, какой из контроллеров у него держит роль PDC, но для верности можно легко проверить это, набрав в командной строке:
netdom /query fsmo
В ответ будет выдано несколько строк, в числе которых можно найти PDC.
2. Переходим на PDC и запускаем командную строку. ПО умолчанию, в домене 2008, даже если вход в систему выполнен под учетной записью администратора, полные права в CMD будут только если запустить CMD в режиме RUN AS. В меню «Start» щелкаем по строке «Command Promt» правой кнопкой мыши и выбираем в контекстном меню «Run as administrator».
3. Останавливаем службу W32Time:
net stop w32time
4. Задаем пул адресов достоверных источников времени
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org"
Если команда копировалась в командную строку со страницы этого сайта через буфер обмена и в результате выдается сообщение вида:
The following arguments were unexpected: 1.pool.ntp.org 2.pool.ntp.org"
можно попробовать удалить и ввести вручную символы кавычек. Годится символ с последней клавиши среднего ряда в латинской раскладке.
5. Теперь попросим PDC отвечать клиентам на запросы о синхронизации времени:
w32tm /config /reliable:yes
6. Снова запускаем службу времени W32Time:
net start w32time
После настройки нужно обязательно проверить журнал событий в разделе «Windows Logs — System» и убедиться, что синхронизация работает, в противном случае разбираться с ошибками. Проблемы могут быть с доступом в интернет с контроллера по порту UDP 123, либо с недоступностью заданных источников времени.
Проверить теущую конфигурацию службы времени можно командой:
w32tm /query /configuration
либо сохранить конфигурацию в текстовый файл, Например, так:
w32tm /query /configuration >> C:\timelog.txt
Имя файла, конечно, можно задать произвольное.
Выполнялись и исправно работали приведенные команды на английской версии Windows Server 2008 R2 Standard, Service Pack 1