Сбивается время на виртуальном контроллере домена

Простое решение проблемы ухода времени на контроллере домена, установленного на виртуальную машину 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