Заметки IT Менеджера

20.11.2009

Настройка точного времени в домене Windows 2003 / 2008 / 2008 R2


обновлено 26.03.2012
Все хотят видеть на компьютере точное время, кроме того, это очень важно для нормального функционирования домена Windows и AD. Казалось бы, чего проще, настраиваешь PDC эмулятор на синхронизацию с каким-нибудь ntp и все становится на места само собой … Но нет, уже несколько раз, наблюдалась рассинхронизация контроллеров домена между собой и жалобы пользователей на то, что наше время отличается от точного на пару минут.
Казалось бы, смешная проблема – пару минут, но для некоторой работы и пара минут важно. Особенно, если это редактора новостной ленты www.korrespondent.net. Правда были еще и шуточные жалобы, что они из-за этой проблемы целых 2, 3 или 5 минут перерабатывают :-)
Стандартные “танцы с бубнами”, которые делал я, а потом и наш сетевой инженер, по руководству от Microsoft помогали, но не долго. Т.е. время сходится, ошибки из лога исчезают, а через пару часов, или, через сутки все начинается заново. А потом, через пару-тройку недель, или месяц-другой, ошибка снова достигает размера более 2-х минут и все заново.
Итак, хочешь что-то сделать хорошо – сделай это сам. Что мы имеем, три контроллера домена, работающих под Windows 2003 Server R2, кучу рабочих станций под Windows XP Professional SP3. В качестве ntp сервера в компании служит Cisco 2821
Признаками проблемы на DC, являющемся еще и PDC эмулятором является наличие следующих ошибок в Event log:
1.
Event Type:    Warning
Event Source:    W32Time
Event Category:    None
Event ID:    47
Date:        17.11.2009
Time:        13:21:45
User:        N/A
Computer:    DC04
Description:
Time Provider NtpClient: No valid response has been received from  manually configured peer ntp.mydomain.ua,0x1 after 8 attempts to contact it. This peer will be discarded as a time source and NtpClient will attempt to discover a new peer  with this DNS name.
2.
Event Type:    Error
Event Source:    W32Time
Event Category:    None
Event ID:    29
Date:        17.11.2009
Time:        13:21:45
User:        N/A
Computer:    DC04
Description:
The time provider NtpClient is configured to acquire time from one or more time sources, however none of the sources are currently accessible.  No attempt to contact a source will be made for 15 minutes. NtpClient has no source of accurate time.
3.
Event Type:    Information
Event Source:    W32Time
Event Category:    None
Event ID:    38
Date:        17.11.2009
Time:        14:06:45
User:        N/A
Computer:    DC04
Description:
The time provider NtpClient cannot reach or is currently receiving invalid time data from ntp.mydomain.ua
(ntp.m|0x1|192.168.0.50:123->10.10.72.17:123).
На остальных контроллерах домена, вместо Event ID 47, присутствует Event ID:    24
Event Type:    Warning
Event Source:    W32Time
Event Category:    None
Event ID:    24
Date:        18.11.2009
Time:        6:46:56
User:        N/A
Computer:    DC03
Description:
Time Provider NtpClient: No valid response has been received from domain controller pdacemul.addomain after 8 attempts to contact it. This domain controller will be discarded as a time source and NtpClient will attempt to discover a  new domain controller from which to synchronize.
Итак, вот процедура по восстановлению работоспособности сервиса w32tm
  1. Если кто не знает этого наизусть, то так вот находим все DC и того, кто из них PDC эмулятор
    netdom query fsmo
  2. Теперь проверяю доступность с PDC эмулятора сервера времени.
    portqry –n ntp.mydomain.ua –e 123 –p UDP Querying target system called:
    ntp.mydomain.ua
    Attempting to resolve name to IP address…
    Name resolved to 10.10.72.17

    UDP port 123 (ntp service): LISTENING or FILTERED
    Должно быть именно так “LISTENING or FILTERED”
    Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.
  3. Затем, с помощью regedit открываю параметры ntp сервера
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    Там должен быть записан ip адрес или полной имя нашего ntp сервера и запись должна обязательно заканчиваться строкой “,0x1”. Кавычки, понятное дело, нужно убрать. Кстати, к этому суффиксу я вернусь позже. Для уверенности в том, что тут нету ошибки, неплохо бы попингать скопированный оттуда адрес или имя.
  4. Там же, следует перейти к параметру
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
    и убедиться, что там прописано  NTP, а не NT5DS
  5. Теперь следует проверить еще одно значение
    HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    тут должна быть 5
  6. Перезапускаем сервис времени:
    net stop w32time && net start w32time
  7. Теперь перезапускаю синхронизацию:
    w32tm /resync /rediscover
  8. На остальных контроллерах домена рекомендуется запустить:
    w32tm /unregister
    w32tm /register
    Эта операция удаляет службу времени, а затем снова ее устанавливает, причем, что важно, удаляется, а затем создается заново вся ветка параметров в реестре.
  9. Очень рекомендуется перезапустить контроллер домена, являющийся pdc эмулятором, да и все остальные тоже.
  10. Если на pdc эмуляторе ошибки появляются заново, как в моем случае, то стоит попробовать заменить значение 0x1 на 0x08 в параметре
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    чтобы стали посылаться стандартные клиентские запросы.
  11. Перезапускаем сервис времени
    net stop w32time && net start w32time
  12. Очень рекомендуется проверить все политики, имеющие отношение к настройкам сервиса времени, а именно:
    Default Domain Controllers group policy
    Default Domain group policy

    ну и все другие, которые имеют отношение к домен контроллерам, серверам и рабочим станциям и в которых изменены любые значения в разделе
    Computer configuration/Administrative Templates /System/Windows Time service/Time Providers
    Убедитесь, что все значения там в состоянии “not configured”. При необходимости, играть с параметрами следует позже.
  13. Если что-то меняли в политике, то перезапускаем сервис времени:
    net stop w32time && net start w32time
  14. Если и после этого ничего не помогло, то нужно обнулить параметры сервиса времени и на pdc эмуляторе
    net stop w32time
    w32tm /unregister
    w32tm /register
    после чего нужно будет настраивать все параметры заново, начиная с п.3. Если вдруг, на этапе удаления напишет про запрет доступа, то нужно перезагрузиться.
  15. В особо тяжелых случаях может помочь включение лога для сервиса. Для настройки этого используются три параметра в реестре по пути
    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
У меня этот алгоритм сработал и, наконец-то, вопрос с временем был закрыт.
Кстати, проверить что со временем все в порядке можно так:
w32tm /monitor
dc01.addomain [192.168.0.60]:
ICMP: 0ms delay.
NTP: +0.0009899s offset from pdcemul.addomain
RefID: pdcemul.addomain [192.168.0.50]
dc03.addomain [192.168.0.20]:
ICMP: 0ms delay.
NTP: -0.0014416s offset from dc04.addomain
RefID: pdcemul.addomain [192.168.0.50]
pdcemul.addomain *** PDC *** [192.168.0.50]:
ICMP: 0ms delay.
NTP: +0.0000000s offset from pdcemul.addomain
RefID: ntp.mydomain.ua [10.10.72.17]
Один из возможных источников проблем с синхронизацией времени — смена PDC emulator в домене. Чтобы избежать этой ситуации не забудьте:

На «старом» PDC Emulator запустить

w32tm /config /syncfromflags:domhier /reliable:no /update

net stop w32time net start w32time

Затем следует передать роль PDC Emulator на новый контроллер домена.

На «новом» PDC Emulator запустить

w32tm /config /manualpeerlist:PEERS /syncfromflags:manual /reliable:yes /update

где PEERS — сервера — источники точного времени, причем значение это или DNS имя, или IP адрес. Если источников больше одного, то между ними необходимо ввести пробел, а сам список должен быть в кавычках: «time.domain.com time1.domain.com».

22 комментария »

  1. Спасиб. Очень помог.

    комментарий от kaizer — 11.03.2010 @ 07:02 | Ответить

  2. […] с внешним источником. Я как-то уже делал инструкцию Настройка точного времени в домене Windows 2003 / 2008 / 2008 R2, правда тогда еще для 2003 сервера. Вчера потратил весь […]

    Уведомление от Что нужно не забыть сделать после перехода на домен Windows 2008 R2 « Заметки IT Менеджера — 31.03.2010 @ 16:33 | Ответить

  3. Спасибо коллега. Очень помог.

    комментарий от NoRLesT — 14.07.2010 @ 00:06 | Ответить

  4. благодарствую. тоже помогло

    комментарий от shwarz13 — 22.09.2010 @ 19:28 | Ответить

  5. Спасибо, помогает!
    Однако: Если ваш компьютер является контроллером домена то необходимо внести соответствующие изменения в Управление групповой политикой> Default Domain Controllers Policy > Конфигурация компьютера > Административные шаблоны > Cистема > Служба времени Windows > Поставщики времени

    Если ваш локальный NTP-сервер работает в условиях рабочей группы, то gpedit.msc
    Конфигурация компьютера > Административные шаблоны > Cистема > Служба времени Windows > Поставщики времени

    комментарий от maxi_ekb — 06.06.2011 @ 12:29 | Ответить

  6. В групповой политике (локальной или доменной) Конфиг. комп — Админ шаблоны — Система — Служба времени Windows — Поставщики времени, значение параметра Включить NTP-клиент Windows, установите «Не задано»
    а то не работает нормально

    комментарий от maxi_ekb — 08.06.2011 @ 10:50 | Ответить

  7. «Эта утилита входит в комплект Support Tools для Windows 2003 Server. К сожалению, на Windows 2008 R2 она не работает.»

    Вот ссылка на PortQryV2 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17148#Instructions
    Работает под 2008 R2 SP1

    комментарий от Volodya — 22.07.2011 @ 18:38 | Ответить

  8. /b Благодарю /b

    комментарий от Yasant — 22.12.2015 @ 11:18 | Ответить

  9. Добрый день,

    у меня в компании 2 Домена Windows Server 2003 Service Pack 2

    на втором контролере хочу поправить время так как сервер спешит на 3 минуты
    1. задал параметры в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    ntp.time.in.ua,0x1
    2. HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    тут должна быть 5

    3. Перезапускаем сервис времени:
    net stop w32time && net start w32time
    4. Теперь перезапускаю синхронизацию:
    w32tm /resync /rediscover

    5. на этом этапе случилась беда… запускаю
    w32tm /unregister

    пишет Acces Denied

    перезапуск Сервера не помог

    запускаю службы служба Windows time пропала ….

    помогите парни

    комментарий от Stepan — 14.03.2018 @ 11:46 | Ответить

    • Мне сложно вам помочь, т.к. у меня уже нет ни одного сервера с Windows Server 2003. Вы пробовали сделать w32tm /register ?
      Тогда когда писал пост, проверял все на себе

      комментарий от itpadla — 14.03.2018 @ 11:51 | Ответить

  10. да написало такую ошибку The following error occurred: Access is denied

    комментарий от Stepan — 14.03.2018 @ 11:55 | Ответить

    • Вы пробовали перезагрузить, а потом ввести w32tm /unregister и снова w32tm /register?

      комментарий от itpadla — 14.03.2018 @ 11:56 | Ответить

  11. а что это такое PDC Emulator ?

    комментарий от Stepan — 14.03.2018 @ 11:56 | Ответить

    • Это FSMO роль сервера в домене AD.

      PDC Emulator

      ДОМЕН ACTIVE DIRECTORY
      Сервер с ролью PDC Emulator служит великой задаче обеспечения совместимости с предыдущими версиями Windows. Но не только, и, в последнее время, не столько. Для начала неплохо бы вспомнить, чем занимался PDC в Windows NT 4.0 и 3.51:

      Обработка операции “смена пароля” для пользователей и компьютеров

      Репликация обновлений на BDC (Backup Domain Controller)

      Обозреватель сети (Domain Master Browser)

      В смешанной среде, в которой встречаются клиенты Windows NT4.0, Windows 95 и Windows 98 (без установленного клиента Active Directory) и контроллеры домена pre-Windows2000, всем вышеперечисленным занимается как раз PDC Emulator. Только он и только для них.

      Когда же все клиенты обновляются до Windows 2000 и выше (либо когда на Windows NT4/95/98 ставится клиент Active Directory), наступает счастье:
      Клиенты меняют пароли при помощи первого попавшегося контроллера домена

      Запросы на репликацию от BDC перестают отнимать время в силу полного своего отсутствия
      Клиенты ищут сетевые ресурсы в AD, и не зависят более от обозревателя сети (эх, как всё хорошо в technet)
      После перехода всей инфраструктуры на Windows 2000 и старше, контроллер домена с ролью PDC Emulator причиняет пользу так:
      Пароль, измененный любым другим контроллером домена, отправляется на PDC Emulator высокоприоритетной репликацией
      Если аутентификация на любом другом контроллере домена не была успешной с признаком “неверный пароль”, запрос повторяется на эмуляторе PDC. Понятно, что, в случае только что произошедшей смены пароля, уж этот-то запрос будет успешным
      При успешной аутентификации учетной записи сразу после неудачной попытки, эмулятор PDC о ней уведомляется и сбрасывает счетчик неудачных попыток в ноль. Сущий позитив для пользователя, часто забывающего свой пароль
      Здесь важно заметить, что, даже в случае недоступности эмулятора PDC, информация об изменении пароля всё равно расползется по домену. Да, возможны некоторые сложности, пока идет репликация, но, в принципе, ничего страшного.
      WELL KNOWN SECURITY PRINCIPALS
      В Active Directory есть такая замечательная штука, как Well Known Security Principals. Это всяческие Local Service, Network Service, Digest Authentication, и т.п. Несложно догадаться, что управление ими всеми (начиная с Windows 2003) осуществляется как раз контроллером домена с ролью PDC Emulator. Конкретно, эмулятор PDC после апгрейда (или переноса данной роли) на более новую версию Windows обновляет содержимое контейнера “CN=WellKnown Security Principals,CN=Configuration,DC=”. В этот же момент происходит создание недостающих well-known и built-in групп, а также обновление членства в них.
      ADMINSDHOLDER
      Следующая нужная фича – AdminSDHolder, владелец административных дескрипторов безопасности. AdminSDHolder защищает административные группы от изменений. Если дескриптор безопасности в какой-либо административной учетной записи не соответствует представлениям AdminSDHolder’а, этот дескриптор будет обновлен в соответствии с его (AdminSDHolder’а) понятиями. К примеру, если исключить well-known пользователя Administrator из группы Builtin\Administrators, AdminSDHolder вернет его на место.
      Да, AdminSDHolder, как понятно, выполняется именно на контроллере домена с ролью эмулятора PDC.
      DNS
      Только для PDC Emulator в DNS регистрируется SRV-запись вида _ldap._tcp.pdc._msdcs.DnsDomainName, она позволяет клиентам быстренько найти сервер эмуляции PDC.
      DFS
      Изменения, вносимые в пространство имен Distributed File System (DFS), вносятся на контроллере домена с ролью PDC Emulator. Корневые серверы DFS периодически запрашивают с эмулятора PDC обновленные метаданные, сохраняя их у себя в памяти. Очевидно, что недоступность эмулятора PDC влечет за собой неверную работу DFS.
      ГРУППОВЫЕ ПОЛИТИКИ
      Редактор групповых политик по умолчанию соединяется с сервером PDC Emulator, и изменения политик происходят на нем же. Если PDC Emulator недоступен, тогда редактор ГП не постесняется спросить у администратора, к какому контроллеру домена подключиться.
      ВРЕМЯ
      Да, по умолчанию именно сервер PDC Emulator является для клиентов сервером точного времени в домене. А эмулятор PDC корневого домена в лесу является по умолчанию сервером точного времени для эмуляторов PDC в дочерних доменах.

      комментарий от itpadla — 14.03.2018 @ 12:00 | Ответить

  12. В любом случае, я вам настоятельно не рекомендую в 2018 году использовать серверную ОС старше чем 2012R2 и держать домен на ней.

    комментарий от itpadla — 14.03.2018 @ 12:02 | Ответить

  13. перезагрузил второй контролер только что

    потом запустил w32tm /unregister и снова w32tm /register : и на первой же команде Acces Denied

    я бы с радостью поставил новый контроллер Windows Server 2012 но надо как то настроить я не знаю как )

    комментарий от Stepan — 14.03.2018 @ 12:23 | Ответить

    • net stop w32time делаете перед w32tm /unregister?

      комментарий от itpadla — 14.03.2018 @ 12:33 | Ответить

  14. ок, такой вопрос

    первый DC у меня Windows 2003 Service Pack 2

    второй DC у меня Windows 2003 Service Pack 2 живет на Hyper-V вот и хочу с него начать upgrade ОС )

    комментарий от Stepan — 14.03.2018 @ 12:24 | Ответить

    • Вам не нужно делать upgrade. Да и не выйдет
      Вам нужно установить с нуля парочку Windows Server 2012R2, обновить, ввести в домен, повысить до контроллера домена, перенести на них все нужные системные сервисы (DNS, DHCP и т.д.) и FSMO, а затем корректно понизить уровень 2003 до обычных серверов, а затем и из домена вовсе. Убедиться, что все ок, повысить уровень домена и леса до 2012R2. Как-то так.

      комментарий от itpadla — 14.03.2018 @ 12:37 | Ответить

      • я хотел сказать установить новый Win 2012 (обновить с 2003 до 2008 R2 даже не получится это я понимаю )
        так вот по процедуре…
        1. установить новый сервер win 2012
        2. добавить в домен
        2.повысить его до уровня AD slave ( master у меня остается Win 2003 (пока) это как сделать ??

        комментарий от Stepan — 14.03.2018 @ 12:47

      • Windows Server 2012R2. R2 — важно, просто 2012 тоже уже «старенький». Ну или сразу 2016 ставить.

        У AD нет уровня slave, как и у контроллеров домена. Вам нужно почитать побольше по AD, а еще лучше послушать курсы от MS по этому поводу.

        комментарий от itpadla — 14.03.2018 @ 13:12


RSS feed for comments on this post. TrackBack URI

Оставьте комментарий

Создайте бесплатный сайт или блог на WordPress.com.