Windows: как установить дату и время перед входом в систему?

Полный новичок в powershell и сценарии, здесь.

Я выяснил, как установить дату и время с помощью powershell, используя командлет set-date.

Тем не менее, я не могу понять, как выполнить сценарий с правами администратора перед входом в Windows или в любом случае как можно скорее в процессе загрузки.

(Мне нужно держать виртуальную машину замороженной во времени, однако кажется, что Hyper-V на самом деле не соблюдает настройки синхронизации времени, или в Windows есть способ обойти это. На всякий случай: да, я также отключил автоматическую синхронизацию времени в Windows и даже заблокировал time.windows.com через файл hosts на всякий случай)

Есть намеки? Спасибо

2 ответа

Мне удалось установить дату входа в систему следующим образом:

schtasks /create /tn "Set Date" /tr c:\setdate.bat /sc onstart /ru SYSTEM

С тривиальным пакетным файлом, который... устанавливает дату.

Однако я нашел что-то более интересное. Как я уже сказал, система как-то синхронизировала дату, и я не мог понять, как и почему.

Окончательное решение было:

  • запустить secpol.msc (консоль локальной политики безопасности)
  • локальные политики -> параметры безопасности -> назначение прав пользователя
  • удалить всех пользователей, включая LOCAL SERVICE, из раздела "изменить системное время"

Вы не понимаете, что делает служба интеграции синхронизации Hyper-V и как она работает. Если этот параметр включен, он синхронизирует время гостя с хостом во время его работы. Это не имеет никакого отношения к гостю, когда гость выключен. При запуске гость получает время напрямую от хоста Hyper-V, а не от службы интеграции. Если вы хотите "заморозить" время гостя, вам нужно перевести гостя в сохраненное состояние. Когда вы восстановите гостя из сохраненного состояния, это будет время, когда вы его сохранили.

Другие вопросы по тегам