Windows: запретить синхронизацию времени по аппаратному источнику
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 06.06.24 03:12
Оценка:
У меня есть виртуальная машина QEMU-KVM с гостевой Windows 10, в которой иногда требуется установить дату на несколько лет назад и запустить некую длительную задачу, в течение которой дата должна оставаться в прошлом. Я отключаю интернет-синхронизацию, выставляю нужную дату и ожидаю, что оно будет держаться, пока я не верну всё обратно. Вместо этого в некий момент происходит сброс времени на текущую реальную дату. В журнале вижу событие, что "System time synchronized with the hardware clock. Process: '' (PID 4).". Проверка показала, что эта синхронизация происходит с периодичностью ровно в 1 час. Попытался проследить через Process Monitor, но ничего странного в этот момент не ловится. Ну то есть видно, что да, псевдо-процесс System в ожидаемый момент времени вдруг берёт и лезет в реестр в раздел настроек времени и часовых поясов и начинает что-то там читать (аналогичные действия выполняет cmd.exe, когда я запускаю там команду date для смены даты), но вот конкретного триггера этой деятельности я обнаружить не могу.

Смотрел в планировщик задач, там в разделе Time Synchronization две задачи: ForceSynchronizeTime с неизвестным кастомным обработчиком и SynchronizeTime, стартующая сервис w32time. Согласно колонке Last Run Time, ни та, ни другая в момент авто-синхронизации не запускались. На всякий случай задизейблил обе. Ожидаемо, не помогло.
Гуглил. Рекомендуют установить параметр RealTimeIsUniversal в реестре, включающий UTC-время в биосе вместо локального. Установил, не помогло.
Также на одном ресурсе видел предложение остановить гостевого агента Qemu; попробовал, не помогло.

Пока обхожусь костылём с фоновым процессом, ежесекундно мониторящим дату и переставляющим её обратно, если обнаруживает синхронизацию, а все операции в моём скрипте, зависящие от текущей даты, обернул в цикл-повтор при возникновении ошибки. Но это ужасно криво. Хотелось бы найти способ вообще избавиться от этого сброса даты. Куда ещё можно ткнуться?
Почему же, ё-моё, ты нигде не пишешь «ё»?
синхронизация времени
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.