Настройка службы времени (NTP) в Windows 2003 / 2008 / 2008 R2

Служба времени Windows, несмотря на кажущуюся простоту является основой нормального функционирования AD.

Итак, в нормально настроенной среде служба времени функционирует так: пользователи получают точное время от ближайшего контроллера домена, на котором они зарегистрировались, все доменные контроллеры запрашивают об этом DC с ролью FSMO «Эмулятор PDC», а тот, в свою очередь, синхронизируется с внешним источником времени. Внешним источником как правило выступает один или несколько NTP-сервера институтов времени, например time.windows.com или NTP-сервер вашего провайдера.

Если у вас рассинхронизация контроллеров домена между собой и жалобы пользователей на то, что наше время отличается от точного, то вам сюда.

Настройка вашего доменного контроллера с ролью «Эмулятора PDC» на синхронизацию с внешним источником:

  • находим все DC и того, кто из них PDC эмулятор
    netdom query fsmo
  • на PDC делаем следующее
    w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly
    которая произведет 5 сравнений с источником, а затем
    w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update
    которая непосредственно выполнит настройку.

    Можно указать сразу несколько серверов, в этом случае необходимо раздели имена серверов пробелом и всех их заключит в ковычки: /manualpeerlist:"time.windows.com clock0.macomnet.ru"

    !!!внимание, связь с источником осуществляется по протоколу NTP – 123 порт UDP.

    Все эти изменения аналогичнв следующим значениям в реестре
    #HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer Там должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0?1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя.
    #HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type убедиться, что там прописано NTP, а неNT5DS
    #HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags тут должна быть 5

  • Если Вы перенесли роль PDC Emulator на другой сервер, необходимо дополнительно выполнить настройку старого сервера командой w32tm /config /syncfromflags:domhier /reliable:no /update и перезапустить службу времени -
    net stop w32time
    net start w32time
    
  • На остальных контроллерах домена рекомендуется сделать
    w32tm /unregister
    w32tm /register
    

    Эта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.

    Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.

Если проблемы всё равно возникают, то стоит попробовать заменить значение 0х01 на 0х08 в параметре
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
чтобы стали посылаться стандартные клиентские запросы.

Перезапускаем сервис времени net stop w32time && net start w32time

Очень рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени, а именно:

Default Domain Controllers group policy
Default Domain group policy
ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделе
Computer configuration/Administrative Templates /System/Windows Time service/Time Providers

Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.

В особо тяжелых случаях может помочь включение лога для сервиса. Для настройки этого используются три параметра в реестре по пути
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

Если нижеприведенных ключей там нету, а их нету по умолчанию, то их следует создать
Value Name: FileLogSize
Data Type: DWORD
Value data: 10000000

Этот параметр определяет максимальный размер файла лога в байтах. Значение 10000000 байт ограничит файл приблизительно в 10 Mb.
Value name: FileLogName
Data Type: REG_SZ (String)
Value data: C:\Test\w32time_log.txt

Этот параметр определяет место и имя файла лога.
Value name: FileLogEntries
Data Type: REG_SZ (String)
Value: 0-116

Этот параметр определяет уровень детализации лога. Диапазон значений параметра 0-116. (Если ввести туда 0-300, то уровень детализации станет максимальным)

Вместо изменения значений в реестре, можно то же самое сделать из командной строки w32tm /debug /enable /file:C:\Test\w32time_log.txt /size:100000 /entries:0-300

Чтобы выключить логи отладки можно ввести команду w32tm /debug /disable

Несколько самых известных источников времени:
1. ntp2.usno.navy.mil
2. pool.ntp.org
3. clock0.macomnet.ru

Проверить что со временем все в порядке можно так:

C:\>w32tm /monitor
dc.local *** PDC ***[[::1]:123]:
    ICMP: 0ms задержка
    NTP: +0.0000000s смещение относительно dc.local
        RefID: 'LOCL' [0x4C434F4C]
        Страта: 1
C:\>w32tm /dumpreg /subkey:parameters

Имя параметра              Тип параметра       Данные параметра
------------------------------------------------------------------

ServiceDll                 REG_EXPAND_SZ       %systemroot%\system32\w32time.dll

ServiceMain                REG_SZ              SvchostEntry_W32Time
ServiceDllUnloadOnStop     REG_DWORD           1
Type                       REG_SZ              NTP
NtpServer                  REG_SZ              pool.ntp.org,0

ну и в нагрузку
http://support.microsoft.com/kb/816042
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q216734
логипрование изменения системного времени http://it-tips.tk/windows/vkluchit-logging-izmenenie-vremeni-change-time/