
記事記号:[mh1911] 初版:2011/Sep/30

名前
Stop-Process
概要
実行中のプロセスを 1 つ以上停止します。
構文
Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<Com
monParameters>]
Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-What
If] [<CommonParameters>]
Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<Co
mmonParameters>]
説明
Stop-Process コマンドレットは、実行中のプロセスを 1 つ以上停止します。プロセ
スを指定するには、プロセス名またはプロセス ID (PID) で指定するか、Stop-Proce
ss に対してプロセス オブジェクトを渡します。Stop-Process は、ローカル コンピ
ューターで実行されているプロセスでのみ機能します。
Windows Vista 以降のバージョンの Windows で、現在のユーザーが所有していない
プロセスを停止するには、Windows PowerShell を起動する際に [管理者として実行]
を指定する必要があります。また、Force パラメーターを使用する場合を除き、確認
メッセージが表示されます。
パラメーター
-Force [<SwitchParameter>]
確認メッセージを表示せずに、指定されたプロセスを停止します。既定では、St
op-Process は、現在のユーザーが所有していないプロセスを停止する前に、確
認メッセージを表示します。
プロセスの所有者を確認するには、Get-WmiMethod コマンドレットを使用して、
プロセスを表す Win32_Process オブジェクトを取得します。次に、オブジェク
トの GetOwner メソッドを使用します。
必須 false
位置 named
既定値 False
パイプライン入力を許可する false
ワイルドカード文字を許可する false
-Id <Int32[]>
停止するプロセスのプロセス ID を指定します。複数の ID を指定するには、ID
をコンマで区切ります。プロセスの PID を検索するには、「get-process」と入
力します。パラメーター名 ("Id") は省略可能です。
必須 true
位置 1
既定値
パイプライン入力を許可する true (ByPropertyName)
ワイルドカード文字を許可する false
-InputObject <Process[]>
指定したプロセス オブジェクトが表すプロセスを停止します。オブジェクトが
格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を
入力します。
必須 true
位置 named
既定値
パイプライン入力を許可する true (ByValue)
ワイルドカード文字を許可する false
-Name <string[]>
停止するプロセスのプロセス名を指定します。複数のプロセス名をコンマで区切
って指定することも、ワイルドカード文字を使用することもできます。
必須 true
位置 named
既定値
パイプライン入力を許可する true (ByPropertyName)
ワイルドカード文字を許可する false
-PassThru [<SwitchParameter>]
プロセスを表すオブジェクトを返します。既定では、このコマンドレットによる
出力はありません。
必須 false
位置 named
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する false
-Confirm [<SwitchParameter>]
コマンドを実行する前に確認メッセージを表示します。
必須 false
位置 named
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する false
-WhatIf [<SwitchParameter>]
実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
必須 false
位置 named
既定値
パイプライン入力を許可する false
ワイルドカード文字を許可する false
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
OutBuffer、および OutVariable。詳細については、
「get-help about_commonparameters」と入力してヘルプを参照してください。
入力
System.Diagnostics.Process
パイプを使用してプロセス オブジェクトを Stop-Process に渡すことができま
す。
出力
なし、または System.Diagnostics.Process
Stop-Process で PassThru パラメーターを使用すると、停止されたプロセスを
表す System.Diagnostics.Process オブジェクトが返されます。それ以外の場
合、このコマンドレットによる出力はありません。
メモ
Stop-Process を組み込みエイリアス "kill" および "spps" で参照することも
できます。詳細については、「about_Aliases」を参照してください。
また、Windows Management Instrumentation (WMI) Win32_Process オブジェク
トのプロパティとメソッドを Windows PowerShell で使用することもできます。
詳細については、Get-WmiObject および「WMI SDK」を参照してください。
プロセスを停止すると、そのプロセスに依存するプロセスやサービスも停止する
可能性があることに注意してください。場合によっては、プロセスを停止したと
き、Windows が停止する場合もあります。
-------------------------- 例 1 --------------------------
C:\PS>stop-process -name notepad
説明
-----------
このコマンドを実行すると、コンピューター上の Notepad プロセスのインスタンス
がすべて停止されます (Notepad の各インスタンスは個別のプロセスで動作します)。
この例では、Name パラメーターを使用してプロセスを指定しています。プロセス名
はすべて同じです。ID パラメーターを使用して同じプロセスを停止する場合は、No
tepad の各インスタンスの ID を列挙する必要があります。
-------------------------- 例 2 --------------------------
C:\PS>stop-process -id 3952 -confirm -passthru
Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):y
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
41 2 996 3212 31 3952 notepad
説明
-----------
このコマンドを実行すると、Notepad プロセスの特定のインスタンスが停止されます。
プロセス ID 3952 を使用してプロセスを識別しています。Confirm パラメーターは、
Windows PowerShell に対して、プロセスを停止する前にユーザーに確認メッセージ
を表示することを指示します。確認メッセージにはプロセス名と ID が含まれている
ため、この方法を推奨します。PassThru パラメーターがあるため、プロセス オブジ
ェクトは、表示用に書式設定プログラムに渡されます。このパラメーターがないと、
Stop-Process コマンドを実行しても何も表示されません。
-------------------------- 例 3 --------------------------
C:\PS>calc
c:\PS>$p = get-process calc
c:\PS>stop-process -inputobject $p
c:\PS>get-process | where-object {$_.HasExited}
説明
-----------
この一連のコマンドを実行すると、Calc プロセスが開始されて停止された後、停止
したプロセスが検出されます。
最初のコマンド (calc) を実行すると、電卓のインスタンスが開始されます。2 番目
のコマンド ($p = get-process calc) を実行すると、Get-Process コマンドレット
を使用して Calc プロセスを表すオブジェクトが取得され、$p 変数に格納されます。
3 番目のコマンド (stop-process -inputobject $p) を実行すると、Stop-Process
コマンドレットを使用して、Calc プロセスが停止されます。InputObject パラメー
ターを使用して、オブジェクトを Stop-Process に渡しています。
最後のコマンドは、コンピューター上の、以前は実行中で現在は停止しているすべて
のプロセスを取得します。コンピューター上のすべてのプロセスを取得するために、
Get-Process コマンドレットを使用しています。パイプライン演算子 (|) により、
結果が Where-Object コマンドレットに渡され、HasExited プロパティの値が TRUE
のプロセスが選択されます。HasExited は、プロセス オブジェクトの 1 つのプロパ
ティにすぎません。すべてのプロパティを検索するには、「get-process | get-memb
er」と入力します。
-------------------------- 例 4 --------------------------
C:\PS>get-process lsass | stop-process
Stop-Process : Cannot stop process 'lsass (596)' because of the following er
ror: Access is denied
At line:1 char:34
+ get-process lsass | stop-process <<<<
[ADMIN]: C:\PS> get-process lsass | stop-process
Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (defau
lt is "Y"):
[ADMIN]: C:\PS> get-process lsass | stop-process -force
[ADMIN]: C:\PS>
説明
-----------
これらのコマンドは、Force パラメーターを使用して、ユーザーが所有していないプ
ロセスを停止するときの結果を示します。
最初のコマンドは、Get-Process コマンドレットを使用して Lsass プロセスを取得し
ます。パイプライン演算子がプロセスを Stop-Process コマンドレットに渡して、プ
ロセスを停止します。サンプル出力に示されているように、最初のコマンドは失敗し
て "アクセスは拒否されました" というメッセージが表示されます。これは、このプ
ロセスを停止できるのは、コンピューターの Administrators グループのメンバーに
限られているためです。
[管理者として実行] を指定して Windows PowerShell を開き、コマンドを繰り返すと、
確認メッセージが表示されます。
2 番目のコマンドは、Force パラメーターを使用して、確認メッセージを表示しない
ようにします。その結果、プロセスは確認なしで停止されます。
関連するリンク
Online version: http://go.microsoft.com/fwlink/?LinkID=113412
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process

基本ソフト: Windows 7
キーワード: Windows PowerShell、ヘルプ、Cmdlet、Stop-Process