web-dev-qa-db-ja.com

タスクがスケジュールされた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

それは完璧に動作します。

2
Gavin Greenwalt

stop-computerは、プロセスとして実行するときに機能するために-forceフラグが必要です。 stop-computer -forceに切り替えると、問題が修正されました。

3
Gavin Greenwalt