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, а не от службы интеграции. Если вы хотите "заморозить" время гостя, вам нужно перевести гостя в сохраненное состояние. Когда вы восстановите гостя из сохраненного состояния, это будет время, когда вы его сохранили.