У меня есть задача, запущенная на сервере Hyper-V, настроенном следующим образом:
schtasks /CREATE /TN AutoShutdown /RU "SYSTEM" /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONSTART
Он работает нормально (насколько я могу судить), однако в скрипте есть строка для выключения компьютера, но этого не происходит.
start-sleep 120
while (1) {$vm = get-vm; if ($vm.state -ne "Running") {stop-computer} else {"Running..."; start-sleep 10}}
Если я запускаю задачу в пространстве пользователя:
schtasks /CREATE /TN AutoShutdown /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONLOGIN
Работает отлично.
решение1
stop-computer нужен флаг -force, чтобы работать, я полагаю, при запуске в качестве процесса. Переключение на stop-computer -force
решило проблему.