Как настроить синхронизацию времени во всём домене сразу? И так, чтобы работало дальше само? А когда контроллер домена с ролью PDC изменится, что делать? А если уже синхронизация времени в домене настроена, но работает плохо, как починить?
Обо всём этом читайте в этой статье.
Немного теории
Синхронизация времени в домене может (теоретически) работать сама, безо всяких настроек. Выглядит это обычно так:
- Компьютеры домена и серверы синхронизируют свое время с контроллерами домена (с ближайшими к ним).
- Контроллеры домена синхронизируют свое время с контроллером домена, которому назначена FSMO роль PDC (в терминах windows 2000 – “первичный контроллер домена”).
- Контроллер домена (КД) с ролью PDC синхронизирует время с внешним источником.
А дальше – начинаются ньюансы:
- Если контроллер домена виртуальный, в настройках виртуальной машины должна быть выключена синхронизация времени [с хостом]. Иначе (если, к примеру, хост с виртуальными машинами – в домене): виртуальный контроллер домена будет (автоматически) синхронизировать время с хостом, а хост – с ближайшим контроллером домена, т.е. со своей виртуалкой.
- Если синхронизация времени уже настроена (вручную или через групповые политики) то задаваемые Вами новые настройки могуть не примениться (несмотря на сообщение successful во всех командах) и тогда потребуется полный сброс настроек синхронизации времени на проблемных компьютерах или контроллерах домена.
Как проверить, работает ли синхронизация времени в домене?
До того, как что-либо “ломать” (и в процессе настройки, чтобы проверять эффективность вносимых изменений) необходимо производить диагностику текущего состояния, а также анализировать текущую конфигурацию службы времени. Этому призваны помочь несколько команд, указанных ниже.
Команда
w32tm /monitor
- Может быть выполнена на любом компьютере (или контроллере) домена.
- Показывает список всех контроллеров домена (с которыми может выполняться синхронизация времени).
- Для каждого контроллера домена в поле “NTP:” отображает разницу во времени с PDC контроллером домена (который является источником для синхронизации времени во всём домене).
- Для каждого контроллера домена в поле “RefID:” отображается информация об источнике синхронизации времени для этого контроллера домена. Для всех контроллеров домена (кроме КД с ролью PDC) это должен быть либо другой контроллер домена, либо КД с ролью PDC.
Команда
w32tm /query /Source
или
w32tm /query /peers
- Может быть выполнена на любом компьютере или контроллере домена.
- Показывает источник для синхронизации времени (с каким компьютером синхронизируется время того компьютера, на котором запущена эта команда). Для любых компьютеров/серверов это должен быть один из контроллеров домена, для любого контроллера домена (кроме PDC) это должен быть другой КД (обычно – с ролью PDC), для КД с ролью PDC это должен быть внешний источник синхронизации времени (интернет).
Если в результатах выполнения команды отобразилось сообщение “VM IC Time Synchronization Provider” – значит, эта виртуальная машина синхронизируется с хостом виртуализации. Если эта виртуальная машина – один из контроллеров домена, такую настройку следует изменить!
Команда
w32tm /query /Configuration /verbose
- Может быть выполнена на любом компьютере или контроллере домена.
- Выводит все настройки службы времени windows для текущего компьютера.
- Убедитесь, что в результатах выполнения команды на всех компьютерах и контроллерах домена (кроме PDC) в разделе [TimeProviders] поле Type имеет значение NT5DS. Если это не так, настройки синхронизации на таких компьютерах надо исправлять (как – см. далее).
- Если у Вас Windows 2003, то Вы не можете выполнить эту команду. Вместо этого Вы можете посмотреть параметры конфигурации службы времени в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters, в частности параметр Type.
Команда
w32tm /query /status /verbose
- Может быть выполнена на любом компьютере или контроллере домена.
- Отображет состояние синхронизации (в т.ч. источник синхронизации, время и статус последней синхронизации) для компьютера, на котором выполняется. Опция “/verbose” дает более подробную информацию.
Команда
w32tm /stripchart /computer:"<computername>" /samples:3 /dataonly
Сравнивает время (и отображает разницу во времени) на текущем компьютере с компьютером, указанном в аргументе /computer. Компьютер-источник для сравнения времени может быть как в интернете, так и в локальном домене. Примеры команды:
w32tm /stripchart /computer:"ntp.org" /samples:3 /dataonly
или
w32tm /stripchart /computer:"dc1.domain.local" /samples:3 /dataonly
Как исправить настройки синхронизации времени
Настройка синхронизации времени на компьютерах и контроллерах домена
(кроме КД с ролью PDC)
- Найдите все групповые политики, изменяющие настройки синхронизации времени, и отключите такие политики. Через групповые политики служба времени настраивается здесь: gpedit.msc => “Computer Configuration” => “Administrative Templates” => “System” => “Windows Time Service” => “Time Providers”. Проверьте, что политики синхронизации времени не применяются, для этого можно выполнить команду:
gpresult /R
- Проверьте, что на всех виртуальных машинах – контроллерах домена отключена синхронизация времени с хостами виртуализации. Для этого (в Hyper-V) можно зайти в свойства виртуальной машины, раздел средств интеграции и отключить синхронизацию времени. После чего конфигурацию службы времени (на виртуальном контроллере домена) нужно обновить.
- Обновите конфигурацию на всех проблемных компьютерах / контроллерах домена (кроме КД с ролью PDC):
w32tm /config /syncfromflags:DOMHIER /update
- Выполните принудительную синхронизацию времени, дав команду заново найти источники синхронизации времени:
w32tm /resync /rediscover
- Если вышеуказанные действия не помогают, перезагрузите службу времени (на проблемных компьютерах)
net stop w32time
net start w32time
и заново выполните пункты 3 и 4. - Если вышеуказанные действия не помогли решить проблему с синхронизацией времени, необходима перерегистрация службы времени на проблемных компьютерах (и повторная настройка параметров).
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
Настройка синхронизации времени на контроллере домена с ролью PDC
Настройки времени на КД с ролью PDC принципиально отличаются от настроек на всех остальных компьютерах в домене (включая остальные контроллеры домена). PDC является источником времени во всём домене, именно его время будет использовано (прямо или косвенно – через другие контроллеры домена) всеми остальными компьютерами.
- Если контроллер домена с ролью PDC – виртуальная машина, убедитесь, в настройках этой виртуальной машины отключена синхронизациия времени с хостом, на котором она находится!
- Убедитесь, что групповые политики синхронизации времени во всем домене (если они у Вас есть) не применяются к КД с ролью PDC! У этого компьютера источник времени – в интернете, и тип синхронизации времени (в отличие от всего остального домена) не NT5DS, а NTP!
- Если есть сомнения в том, что синхронизация времени на КД с ролью PDC выполняется правильно, проще всего выполнить перерегистрацию и повторную настройку службы времени.
Перерегистрация службы времени на контроллере домена с ролью PDC
Для отмены регистрации и повторной регистрации службы времени выполните следующие команды:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
Настройка синхронизации времени на контроллере домена с ролью PDC
Наш КД с ролью PDC необходимо настроить на синхронизацию с внешним источником (в интернете). Для этой цели не подходит тип синхронизации NT5DS и синхронизации в соответствии с иерархией домена (DOMHIER). Поэтому на нашем КД с ролью PDC мы используем тип синхронизации NTP и синхронизация будет настроена вручную (MANUAL). Источники синхронизации (peers) указываются в кавычках, а если таких источников несколько, то они перечисляются через запятую. Кроме того, мы даем указание считать данный источник синхронизации (КД с ролью PDC) надежным источником времени (reliable):
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org" /reliable:yes /update
Теперь можно ускорить применение параметров и синхронизацию времени, перезагрузив службу времени и форсировав синхронизацию:
net stop w32time
или
net start w32time
w32tm /resync /force w32tm /resync /rediscover
После выполнения этих команд (сделав паузу в несколько минут на применение параметров и выполнение синхронизации) сравните время на контроллере домена с временем в интернете:
w32tm /stripchart /computer:"0.ru.pool.ntp.org" /samples:3 /dataonly
Не забудьте проверить, что на всех контроллерах домена время синхронизировалось с PDC. Для этого наберите команду:
w32tm /monitor
Всё должно заработать!
P.S.: Обратите внимание, что применение параметров команды w32tm требует времени. Поэтому после каждого обновления конфигурации рекомендуем делать паузу в 1-5 минут, а потом уже проверять, обновилась ли конфигурация службы времени, и как всё работает.
Источники информации для данной статьи:
- w32tm Настройка синхронизации времени через cmd
- Windows Standart 2012 R2 синхронизация времени с интернетом не работает
- Особенности настройки времени для виртуальных контроллеров домена
- OsZone.net: [решено] Домен – Синхронизация времени
- Настройка синхронизации времени в домене Active Directory
- Синхронизация времени с внешним NTP сервером в Windows Server 2008 R2
- Настройка синхронизации времени по NTP с помощью групповых политик