Служба W32Time не синхронизирует время?

3 февраля 2011 г.
Comments

Настройка службы времени - W32timе в операционных системах Windows, кажется тривиальной задачей. Но как показывает практика, многие системные администраторы сталкиваются с трудностями при настройке службы W32Time. В данной статье я не буду рассказывать как настроить службу времени в операционных системах Windows для синхронизации с точным источником времени, так как этот материал очень хорошо представлен на сайте TechNet. Я хотел бы рассказать с какими проблемами можно столкнуться при настройке службы времени, и как решить их.
Начнем с контроллера домена. Не секрет что все клиентские компьютера в доменне по умолчанию синхронизируются с основным контроллером домена (PDC), в каждом домене леса может быть только один контроллер домена, выполняющий роль хозяина эмулятора PDC.
Мы сконфигурировали контроллер домена так, чтобы он синхронизировался с источником точного времени. При просмотре событий мы обнаружили, что PDC не хочет синхронизироваться с сервером точного времени:

Тип события: Предупреждение
Источник события: W32Time
Категория события: Отсутствует
Код события: 12
Дата: 02.02.2011
Время: 13:53:39
Пользователь: Н/Д
Компьютер: SERVER
Описание:
NTP-клиент поставщика времени: этот компьютер использует доменную
структуру для определения своего источника времени,
но для этого домена в корне леса находится PDC-эмулятор,
поэтому нет компьютера, расположенного выше в доменной иерархии,
который можно использовать как источник времени. …

С чего в таком случае начинать? Сперва проверим, правильно мы сконфигурировали службу времени. В командной строке выполним команду w32tm /query /configuration:

image

Обратите внимание на секцию [TimeProviders], а именно значение параметра Type должен быть NTP, и в параметре NtpServer должны бать перечислены источники точного времени. Все это можно посмотреть в ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters
Теперь проверим, доступен контроллеру домена источник точного времени, в нашем случаи это ntp0.mao.kiev.ua. Воспользуемся утилитой PortQry, и проверим сервера по порту 123 и протоколу UDP (именно этот протокол и порт используется для синхронизации времени)

image

Как видно из приведенного скриншота, сервер доступен. Если же источник точного времени не доступен, то вероятней всего на шлюзе закрыт доступ для PDC по 123 порту и протоколу UDP.
Если тест на проверку доступности порта прошел удачно, а PDC упорно не хочет синхронизировать время с внешним источникам, переходим к следующему этапу.
Включим дебаг службы W32Time, при этом не забываем перезапускать саму службу
(net stop W32Time && net start W32Time).
Я приведу отрывок из лог
149698 10:43:20.9531250s - ---------- Log File Opened -----------------
149698 10:43:20.9531250s - Entered W32TmServiceMain W2K3SP1
149698 10:43:20.9531250s - CurSpc:15625000ns  BaseSpc:15625000ns  SyncToCmos:Yes
149698 10:43:20.9531250s - PerfFreq:3579545c/s
149698 10:43:20.9531250s - Time zone OK.
149698 10:43:20.9531250s - ReadConfig: Found provider 'NtpClient':
149698 10:43:20.9531250s - ReadConfig:   'Enabled'=0x00000001
149698 10:43:20.9531250s - ReadConfig:   'DllName'='C:\WINDOWS\system32\w32time.dll'
149698 10:43:20.9531250s - ReadConfig:   'InputProvider'=0x00000001
149698 10:43:20.9531250s - ReadConfig: Found provider 'NtpServer':
149698 10:43:20.9531250s - ReadConfig:   'Enabled'=0x00000001
149698 10:43:20.9531250s - ReadConfig:   'DllName'='C:\WINDOWS\system32\w32time.dll'
149698 10:43:20.9531250s - ReadConfig:   'InputProvider'=0x00000000
149698 10:43:20.9531250s - ReadConfig (policy): Found provider 'NtpClient':
149698 10:43:20.9531250s - ReadConfig (policy):   'Enabled'=0x00000001
149698 10:43:20.9531250s - ReadConfig (policy): Found provider 'NtpServer':
149698 10:43:20.9531250s - ReadConfig (policy):   'Enabled'=0x00000001
149698 10:43:20.9531250s - ReadConfig: 'PhaseCorrectRate'=0x00000001
149698 10:43:20.9531250s - ReadConfig: 'UpdateInterval'=0x00007530
149698 10:43:20.9531250s - ReadConfig: 'FrequencyCorrectRate'=0x00000004
149698 10:43:20.9531250s - ReadConfig: 'PollAdjustFactor'=0x00000005
149698 10:43:20.9531250s - ReadConfig: 'LargePhaseOffset'=0x00138800
149698 10:43:20.9531250s - ReadConfig: 'SpikeWatchPeriod'=0x0000005A
149698 10:43:20.9531250s - ReadConfig: 'HoldPeriod'=0x00000005
149698 10:43:20.9531250s - ReadConfig: 'MinPollInterval'=0x0000000A
149698 10:43:20.9531250s - ReadConfig: 'MaxPollInterval'=0x0000000F
149698 10:43:20.9531250s - ReadConfig: 'AnnounceFlags'=0x0000000A
149698 10:43:20.9531250s - ReadConfig: 'LocalClockDispersion'=0x0000000A
149698 10:43:20.9531250s - ReadConfig: 'MaxNegPhaseCorrection'=0x0000D2F0
149698 10:43:20.9531250s - ReadConfig: 'MaxPosPhaseCorrection'=0x0000D2F0
149698 10:43:20.9531250s - ReadConfig: 'EventLogFlags'=0x00000002
149698 10:43:20.9531250s - ReadConfig: 'MaxAllowedPhaseOffset'=0x0000012C

Из этого лога видно,

149698 10:43:20.9531250s - ReadConfig (policy): Found provider 'NtpClient':
149698 10:43:20.9531250s - ReadConfig (policy):   'Enabled'=0x00000001
149698 10:43:20.9531250s - ReadConfig (policy): Found provider 'NtpServer':
149698 10:43:20.9531250s - ReadConfig (policy):   'Enabled'=0x00000001

что служба времени настроена при помощи групповой политики, а именно:

image


Задаем значение этих параметров групповой политики – «Не задана». Затем обновляем групповую политику, если эта политика доменная. Если политика локальная, то достаточно перезапустить службу W32Timе. Осталось теперь выполнить синхронизацию времени
W32tm /resync.

Бывают случаи, когда на PDC запущены несколько служб, которые «слушают» 123 порт. При помощи команды netstat можно посмотреть какие службы запущены, и какой порт они «слушают». Вот пример команда: netstat -a -b -v -p udp > c:\upd.txt,которая выведет в файл информацию обо всех службах, которые используют протокол UDP. Проанализировав файл, можно найти какие службы используют локальный адрес 0.0.0.0:123.(или :ntp) Отключите все кроме W32Time.

Перейдем к рабочим станциям. Как я говорил выше, все клинские компьютера в домене синхронизируют время с PDC. Если не изменять параметр Type (по умолчанию он равен NT5DS)в ветке реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters,

проблем с синхронизацией быть не должно. Этот параметр можно задать при помощи групповой политики:

image


Но не изменяйте этот параметр в Default Domain Policy. Создайте отдельную политику, и прилинкуйте ее к контейнеру, где расположены рабочие станции.

И последний момент. При передачи роли PDC другому контроллеру домена, рабочие станции упорно не хотят синхронизировать время с новым PDC. Для это на новом держателе роли PDC выполните в командной строке:


  1. w32tm /config /syncfromflags:domhier /reliable:no /update
  2. net stop w32time && net start w32time
Ну вот пока все, осталось пожелать успехов в нашем не легком деле :) !

----------------------------------
P.S. Если Вам понравилась статья, или статья была Вам интересна – кликните на рекламе :)

Ярлыки: