次のような 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
問題は解決しました。