Простое решение проблемы ухода времени на контроллере домена, установленного на виртуальную машину Hyper-V под управлением Windows Server 2008/2012.
Во время работы контроллера домена под управлением Windows Server 2008 R2/2012, установленного на виртуальную машину Hyper-V, было замечен постоянный уход времени – за месяц время могло уйти чуть ли не на полчаса. Нужно ли говорить, насколько важно точное время на контроллере домена, ведь по нему синхронизируется весь парк компьютеров домена.
1. Отключить синхронизацию времени с хост-машиной
Для начала нужно отключить синхронизацию времени гостевой машины по времени хост-машины, иначе мы получаем казус. Если хост-машина является членом домена, хост синхронизируется по контроллеру на гостевой машине, а гостевая машина синхронизируется по хосту – получаем замкнутый цикл, который скорее всего и приводит к постоянному смещению времени внутри себя. Смещение получается буквально на какие-то доли секунды, но постепенно складываясь за каждый цикл синхронизации набегает весьма ощутимый сдвиг часов.
В параметрах виртуальной машины Настройка
→ Службы интеграции
→ Синхронизации времени
– снять птичку
2. Настроить синхронизацию по NTP-серверу
Инструментарий
Для настройки воспользуемся утилитой командой строки w32tm. Основные параметры утилиты, которые применяются для настройки и управления временем:
w32tm /query
- позволяет опросить текущие настройки клиента и сервера NTP
w32tm /config
- используется для настройки службы времени
w32tm /resync
- используется для инициализации синхронизации времени
w32tm /dumpreg
- используется для отображения текущих параметров реестра связанных с службой времени
w32tm /debug
- используется для включения журнала отладки службы времени
Настройка
Выполняется настройка синхронизации времени на контроллере домена под управлением Windows Server 2008 R2 с ролью FSMO «Эмулятор PDC»:
w32tm /query /configuration
- смотрим текущие параметры службы времени
w32tm /config /syncfromflags:manual
- выбираем источник (заданный нами список) для синхронизации времени
w32tm /config /manualpeerlist:"server1.ntp.org server2.ntp.org"
- устанавливаем заданный вручную список узлов для синхронизации. Узлы представляют собой DNS-имена или IP-адреса, разделённые пробелами. При указании нескольких узлов, все значения узлов заключаются в кавычки. Можно, конечно ограничится и одним привычным
time.windows.com
w32tm /config /reliable:yes
- задаем параметр, что данная машина является надёжным источником времени и может обслуживать клиентов
w32tm /config /update
- информируем службу времени, что были внесены изменения (можно перезапустить службу)
w32tm /query /configuration
- проверяем внесенные изменения в параметры службы
w32tm /resync
- выполняем синхронизацию (можно поиграться, менять время и проверять, будет ли выполнена синхронизация)
Для большей надежности можно еще и перезапустить Службу времени командами net stop w32time
и net start w32time
.
Для удобства, перечисленные команды хорошо собрать в один cmd-файлик и решать вопрос в один клик:
w32tm /config /syncfromflags:manual w32tm /config /manualpeerlist:time.windows.com w32tm /config /reliable:yes w32tm /config /update w32tm /query /configuration pause w32tm /resync