タスクスケジュールされた Powershell スクリプトがマシンをシャットダウンしない

タスクスケジュールされた Powershell スクリプトがマシンをシャットダウンしない

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

関連情報