Назад | Перейти на главную страницу

Синхронизация времени не выполняется на виртуальной машине Hyper-V, но завершается успешно, когда я вхожу в систему как пользователь домена

У нас есть виртуальная машина Windows Server 2003 SP2, работающая на Hyper-V (хост Server 2008 R2). На виртуальной машине включена синхронизация времени Hyper-V.

Я заметил, что время на виртуальной машине сократилось примерно на 25 минут. В журнале событий я увидел следующее:

Я вошел в систему как локальный пользователь. (У нас есть старое приложение, которое работает на этой виртуальной машине - оно требует, чтобы пользователь всегда был в системе, и мы используем для этого учетную запись пользователя, не принадлежащего домену.)

Когда я зашел в систему как пользователь домена, часы почти сразу исправились. Запуск "w32tm / monitor" и "net time" от имени пользователя домена не показал ошибок и указал, что наш контроллер домена был источником времени.

Кто-нибудь знает, что может вызвать это, и почему вход в систему под учетной записью домена решает проблему? Мне интересно, не пойдет ли время снова.

Спасибо за вашу помощь,
Ричард

Что я узнал из практического опыта: -Синхронизируйте весь гипервизор с вашим контроллером домена (создайте циклический DNS, например ntp.mydomain.local для каждого контроллера домена) . Только он должен это делать. -все контроллеры домена, работающие как виртуальная машина, не должны синхронизировать время с помощью инструментов Hyper-V или VMware.

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

Разница более 5 млн по умолчанию нарушит работу Kerberos.

Проверяйте время на всех гипервизорах и DC.

Вот плохой сценарий, который я использую, который дает смещение между компьютерами и эталонным (выберите dc с эмулятором pdc FSMO): (длинная строка). В текущей папке должен быть psexec, а для проверки загружать файл servers.txt по одному серверу в каждой строке.

for /f %s in (servers.txt) do echo %s >> ntp_stripchart.txt && psexec \\%s w32tm /stripchart /computer:myspecialDC /period:1 /dataonly /samples:1 >> ntp_stripchart.txt && echo -------- >> ntp_stripchart.txt