2016年11月28日

【PowerShell】実行中のプロセスを停止する



実行中のプロセスを中止するには、Stop-Processを使います。

構文
Stop-Process -Name [プロセス名]

Stop-Process -Id [プロセスID]

Stop-Process -InputObject [オブジェクト変数]


まず、プロセス名を指定する方法です。
PS C:\> Stop-Process -Name "excel"
ここでは、「excel」を指定しています。
ちなみにダブルコーテーションは無くても大丈夫です。



次に、プロセスIDを指定する方法です。


いまこのようにExcelがID:392で起動していたとします。
このプロセスを停止するには次のようにします。
PS C:\> Stop-Process -Id 392



次に、オブジェクト変数を使った方法です。


いま、メモ帳が起動していたとします。

PS C:\> $proc = Get-Process -Name notepad
PS C:\> Stop-Process -InputObject $proc
PS C:\> $proc | Where-Object {$_.HasExited}

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    226      15     3484      17060       0.06  12644  16 notepad

まず、Get-Processで名前が「notepad」のプロセスを取得して変数$procに格納します。
そして、Stop-Processの「-InputObject」で$procを指定してプロセスを停止しています。

このオブジェクト変数を使うことにより、3行目のようにHasExitedプロパティでプロセスが停止したか確認ができます。


<関連記事>
【PowerShell】プロセスの停止を待つ
【PowerShell】プロセスをデバッグする
【PowerShell】プロセスを開始する
【PowerShell】実行中のプロセスを取得する
【PowerShell】サービスを停止する


スポンサーリンク