time

В последнее время мне часто задают вопросы о синхронизации времени в ОС нового поколения Windows Vista и Server 2008. Что ж, попробую в этом посте максимально подробно рассказать об этом процессе.
Проблем может быть несколько: здесь я расскажу о двух популярных и одной малоизвестной, но очень мерзкой.
1. Вы устанавливаете Vista/Server 2008 и не вводите этот компьютер в домен. В этом случае у вас будет доступна вкладка Internet Time при правом щелчке на часы в трее и выборе Adjust Time/Date или выборе Date and Time из панели управления.
timetab по умолчанию там указан сервер времени time.microsoft.com. Если вы живете по тому же распорядку дня, что и миллионы других жителей вашего часового пояса, то часто может возникать ошибка «An error occurred while Windows was synchronizing with time.windows.com. This operation returned because the timeout period expired.» Предположительно недоступность сервера может быть вызвана, например, чрезмерным количеством обращений к этому серверу и может быть исправлено указанием другого сервера или другого интервала проверки времени. Для изменения сервера времени необходимо изменить его имя в закладке internet time updatedts или выполнить команду net time /setsntp:»time.nist.gov». После чего надо перезапустить службу времени net stop w32time && net start w32time. Также необходимо убедиться, что служба запускается автоматически – это можно проверить консолью Services (Control Panel – Administrative Tools – Services)
windows-time1
Часто бывает так, что после выключения компьютера время сбивается (почти наверняка вызвано «умершей» батарейкой на материнской плате). Для того, чтобы изменить частоту синхронизации времени нам придется править реестр. Для этого открываем regedit и переходим по следующему пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient
дважды щелкаем на ключ SpecialPollInterval specialpolling в значении содержиться число секунд в шестнадцатиричной системе через которое обновляется время с NTP сервера, если перевести в 10ную систему получиться 3600 секунд, то есть 1 час. Если это значение необходимо изменить, то можно в 10ной системе ввести необходимый интервал; рекомендуется ставить интервал не чаще 4 часов, иначе NTP серверы могут вас заблокировать. Важное замечание: если вы используете сторонние firewall-продукты, необходимо проверить, разрешен ли 123 порт для синхронизации времени.
2. Если компьютер присоединен в домен, то в Vista/Server 2008 вкладка Internet time будет отсутствовать notimetab это происходит потому, что по умолчанию члены домена получают время с контроллера домена, который их авторизовал, а сами контроллеры домена с PDC Emulator’a, поэтому для построения правильной стратегии использования времени, мы должны выставить правильное время на контроллере домена, являющемся PDC эмулятором, для этого выполняем на нем команду net time /setsntp:»time.nist.gov» и перезапустить сервис времени net stop w32time && net start w32time, после чего наш контроллер получит время с внешнего источника. Далее на каждом контроллере домена необходимо выполнить следующую последовательность команд.
net stop w32time
w32tm /unregister && w32tm /register
net start w32time

Это позволит контроллерам домена синхронизировать время с PDC Emulator’ом и иметь актуальное время на всех контроллерах. После этого каждый член домена либо через некоторое время, либо после перезапуска службы Windows Time (Перезагрузка компьютера) получит актуальное время.
Подсказка: команда w32tm /monitor умеет показывать различие между контроллером домена и клиентом.
C:\Users\me>w32tm /monitor
dc2.ad.********.ru *** PDC ***[172.16.*.*:123]:
ICMP: 1ms delay
NTP: +0.0000000s offset from dc2.ad.********.ru
RefID: ntp.********.ru [194.*.*.56]
Stratum: 3
3. И, наконец, третий случай, о котором я хотел рассказать. Случай редкий, но заставивший меня подумать. Поскольку контроллеры домена – это лучшие кандидаты на виртуализацию – в одной организации было решено перевести их в виртуальную среду. Один DC хостился на Hyper-V, второй на Virtual Server 2005. При этом оба контроллера домена имели внешний NTP сервер для синхронизации. В организации начались проблемы со временем на всех компьютерах. После некоторых тестовых процедур была выявлена следующая закономерность – 1 сервер виртуализации (Virtual Server) имеет неактуальное время в BIOS’e. Выключается свет. Серверы тоже гаснут. После появления света сервера автоматически заводятся. Один из серверов загружается с неактуальным временем, поскольку контроллеров домена не найдено, на компьютере остается системное время. Загружается виртуальный контроллер домена и при запуске службы Windows Time выполняет синхронизацию времени с внешним источником, Virtual Machine Additions сразу же выполняют принудительную синхронизацию времени с хостовой машиной (время на DC становится неверным, хотя он успешно выполнил синхронизацию с внешним источником). То же происходит со вторым контроллером домена, и мы получаем картину, когда оба DC синхронизируются с одним внешним сервером времени, при этом фактически имеют разное время и, как следствие, ошибки Kerberos. Проблема разрешилась довольно простым способом – выключением функции синхронизации времени виртуальной и хостовой машины как в Hyper-V, так и в Virtual Server, после чего на хостовых серверах виртуализации была выполнена команда net stop w32time && net start w32time, и время стало актуальным во всем домене.
И напоследок список открытых NTP серверов.

UPD: Мой друг и коллега Артем Синицын написал замечательный пост на тему синхронизации времени в домене Active Directory. Очень рекомендую к прочтению!

17 Comments

  1. Синхронизация времени в домене Active Directory | Artyom Sinitsyn Blog says:

    [...] Ефремов опубликовал статью, подробно описывающую механизм синхронизации времени [...]

  2. Тина says:

    Познакомилась с Вашим сайтом. А сейчас отправлюсь на пост Артема Синицина

  3. Maxim Efremov says:

    Welcome!

  4. Bezugloff says:

    Спасибо, наконец-то разобрался как в домене время все синхронизировать.

  5. Максим says:

    Спасибо, разобрался. Только у меня почти всегда пишет: «Ошибка при выполнении синхронизации с (адрес сервера)». И так на всех серверах
    time-b.nist.gov
    time-a.nist.gov
    time-nw.nist.gov
    time.nist.gov
    time.windows.com
    ntp.colocall.net
    Время у меня каждый день сбивается, а батарейка нигде не продается, уже в трех магазинах спрашивал.
    Как настроить, чтобы время синхронизировалось при каждом подключении к интернету?

  6. Maxim Efremov says:

    А какого типа используется подключение к интернет и какая у Вас ОС?

  7. Тим says:

    Здравствуйте!

    У меня Vista Basic(sp1), ноутбук новый HP PRO Book. У меня проблема с синхронизацией времени, пробовал ВСЕ популярные сервера, отключал и включал сервис времени – НИЧЕГО не помогает. Есть какие либо предположения, что можно сделать?

  8. Maxim Efremov says:

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

  9. Nemocus says:

    Спасибо. Прочитал с интересом. Блог в избранное занес=)

  10. Служба синхронизации времени « Oh, MSBRO ! says:

    [...] Ефремов опубликовал статью, подробно описывающую механизм синхронизации времени [...]

  11. Jonik says:

    pool.ntp.org – самый правильный сервер синхронизации времени

  12. Fanta says:

    НАстроил сначала как в статье. В логах:

    Ntp-клиенту не удалось задать настроенный вручную узел как источник времени из-за ошибки разрешения имен DNS на «time.nits.gov». Ntp-клиент повторит попытку через 15 минут, а затем удвоит интервал между попытками. Ошибка: Этот хост неизвестен. (0x80072AF9)

    хотя пинги и nslookup все показывают и резолвлят!

    Потом поменял time.nits.gov на time.windows.com и увидел в логах:

    NTP-клиент поставщика времени: правильный ответ от контроллера домена time.windows.com не был получен после 8 попыток обращения. Этот узел не будет использоваться в качестве источника времени, а NTP-клиент попытается найти новый узел с этим DNS-именем. Ошибка: Этот узел недоступен.

    и опять пинги и nslookup все показывают и резолвлят.
    ОС = Вин2008 х64 СП2 (PDC)

    Что я делаю не так?

  13. fallen says:

    Fanta, если пинги идут и nslookup все резолвит, значит проблема скорее всего в том, что у тебя на firewall’е закрыт NTP порт (123). Создай разрешающее правило и перезапусти службу w32time..

  14. Prorok says:

    Надо настроить на «time.nist.gov», а не «time.nits.gov»

  15. Andrey says:

    Максим а что имеется в виду «проблема разрешилась довольно простым способом – выключением функции синхронизации времени виртуальной и хостовой машины» , что ето за функция? Как она называется в системе ? И как ее отключить ?

    Спасибо за полезный пост.

  16. Andrey says:

    Все, нашел где отключается:) Спасибо.

  17. Andrew says:

    Спасибо, помогло W2k8

Leave a Reply