PowerShellでプロセスを終了する方法|Stop-Processコマンドの使い方と注意点

目次

スポンサードリンク

Windowsのタスクマネージャーでプロセスを終了するのと同じような操作を、PowerShellからコマンドで実行できます。本記事では、Stop-Processコマンドを使ってプロセスを終了する方法や、対象のプロセスを特定する方法について解説します。

Stop-Processコマンドの基本構文

Stop-Process は、実行中のプロセスをコマンドラインから終了させるためのWindows標準コマンドです。基本的な構文は以下の通りです。

Stop-Process -Name "プロセス名"
または
Stop-Process -Id プロセスID

例えば、メモ帳を起動してプロセス終了を試してみましょう。 Get-Processコマンドとfindstrコマンドを組み合わせて、メモ帳のプロセスIDと名称を見てみましょう。(わかりやすくGet-Processコマンドのヘッダー行を表示しています)

PS C:\Users\username> Get-Process | findstr Notepad
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    819      37    71476     124436       1.06  13632   6 Notepad

この場合、メモ帳のプロセスIDは13632、プロセス名は Notepad です。 このプロセスを終了したいときは以下のようにコマンドを実行します。

Stop-Process -Name "Notepad"
または
Stop-Process -Id 13632

プロセス名称で指定する場合、複数のメモ帳(notepad.exe)プロセスを起動している場合は、すべてのプロセスが強制終了します。 単一のプロセスを終了したい場合は、プロセスIDを使うことで、同名の複数プロセスがある場合にも正確に終了できます。

終了時に確認を入れ安全に終了する方法

Stop-Processコマンドを実行する際、-Confirm を付与すると終了前に以下のような確認メッセージが表示されます。

PS C:\Users\username> Get-Process -Name "notepad" | Stop-Process -Confirm

確認
この操作を実行しますか?
対象 "Notepad (18828)" に対して操作 "Stop-Process" を実行しています。
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ
(既定値は "Y"):

強制終了(-Forceオプション)する方法

通常は不要ですが、Stop-Processコマンドを実行しても応答しないプロセスがある場合に有効です。

Stop-Process -Name "Notepad" -Force

まとめ

Stop-Process は、PowerShellを使ったプロセス管理においてシンプルで強力な手段です。スクリプト内に組み込んで自動終了処理を組み込むなど応用できるテクニックです。


PowerShellの基礎を一通り学べるおすすめ書籍
Windows環境で開発やシステム管理を行うエンジニアにとって、PowerShellの知識は非常に重要なスキルセットです。こちらの書籍はサンプルも豊富で手元に置いておきたい一冊です。

コマンドプロンプトのポケットリファレンス:Windows11対応版