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

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

Полный новичок в PowerShell и скриптах здесь.

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

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

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

Есть подсказки? Спасибо

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

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

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

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

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

  • запустите secpol.msc (консоль локальной политики безопасности)
  • локальные политики -> параметры безопасности -> назначение прав пользователей
  • удалить всех пользователей, включая ЛОКАЛЬНЫЙ СЕРВИС, из «изменить системное время»

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