タスク マネージャーでタスクを終了することはできますが、cmd で taskkill を実行するとできません。なぜでしょうか?

タスク マネージャーでタスクを終了することはできますが、cmd で taskkill を実行するとできません。なぜでしょうか?

ムービー ファイルのトランスコードが完了するたびにソフトウェアを終了する必要があります。これを自動化するために、小さなバッチ スクリプトを作成しました。その中で、次のように taskkill を使用しようとしました。

taskkill /im taskname.exe /t /f

しかし、常に次のエラー メッセージが表示されます: エラー: PID 6708 のプロセスを終了できませんでした。理由: タスクの実行中のインスタンスがありません。

また、管理者として cmd ウィンドウを起動し、PowerShell も試しました。しかし、その後にタスクリストを実行すると、タスクがまだ表示されます。

面白いのは、タスク マネージャーでタスクを右クリックしてタスクを終了すると、タスクが即座に終了することです。タスク マネージャーで「タスクの終了」はどのコマンドを呼び出すのでしょうか。バッチ ファイルで自動化できるものはありますか。

答え1

提案されたようにバロップサードパーティのコマンドライン アプリ nircmd.exe が役立ちました。

nircmd.exe killprocess processname

答え2

名前で強制終了できないが、プロセス ID がある場合は、PID で強制終了してみることができます。

for /f "delims== tokens=2" %%i in ('WMIC process where "Name='process.exe'" get ProcessId /value') do set pid=%%i 
echo Going to kill PID: %pid%
taskkill.exe /PID %pid%

関連情報