Stop-Process
1 つ以上の実行中のプロセスを停止します。
Stop-Process
[-Id] <Int32[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
-Name <String[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
[-InputObject] <Process[]>
[-PassThru]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Process
コマンドレットは、1 つ以上の実行中のプロセスを停止します。 プロセス名またはプロセス ID (PID) でプロセスを指定するか、プロセス オブジェクトを Stop-Process
に渡すことができます。
Stop-Process
は、ローカル コンピューターで実行されているプロセスでのみ機能します。
Windows Vista 以降のバージョンの Windows オペレーティング システムでは、現在のユーザーが所有していないプロセスを停止するには、[管理者として実行] オプションを使用して PowerShell を起動する必要があります。 また、Confirm パラメーターを指定しない限り、確認を求めるメッセージは表示されません。
Stop-Process -Name "notepad"
このコマンドは、コンピューター上のメモ帳プロセスのすべてのインスタンスを停止します。 メモ帳の各インスタンスは、独自のプロセスで実行されます。 Name パラメーターを使用してプロセスを指定し、そのすべてが同じ名前を持ちます。 ID パラメーターを使用して同じプロセスを停止する場合は、メモ帳の各インスタンスのプロセス ID を一覧表示する必要があります。
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
このコマンドは、メモ帳プロセスの特定のインスタンスを停止します。 プロセス ID 3952 を使用してプロセスを識別します。
Confirm パラメーターは、プロセスを停止する前に PowerShell にプロンプトを表示するように指示します。 プロンプトには ID に加えてプロセス名が含まれているため、これがベスト プラクティスです。
PassThru パラメーターは、プロセス オブジェクトをフォーマッタに渡して表示します。 このパラメーターがないと、Stop-Process
コマンドの後に表示されません。
calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}
この一連のコマンドは、Calc
プロセスを開始および停止し、停止したプロセスを検出します。
最初のコマンドは、電卓のインスタンスを開始します。
2 番目のコマンドでは、Get-Process
を使用して、Calc
プロセスを表すオブジェクトを取得し、$p
変数に格納します。
3 番目のコマンドは、Calc
プロセスを停止します。
InputObject パラメーターを使用して、オブジェクトを Stop-Process
に渡します。
最後のコマンドは、実行されていたが停止しているコンピューター上のすべてのプロセスを取得します。
Get-Process
を使用して、コンピューター上のすべてのプロセスを取得します。 パイプライン演算子 (|
) は、結果を Where-Object
コマンドレットに渡します。このコマンドレットは、HasExited プロパティの値が$Trueするものを選択します。 HasExited は、プロセス オブジェクトの 1 つのプロパティにすぎません。 すべてのプロパティを検索するには、「Get-Process | Get-Member
」と入力します。
PS> Get-Process -Name "lsass" | Stop-Process
Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ Get-Process -Name "lsass" | Stop-Process <<<<
[ADMIN]: PS> Get-Process -Name "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 (default is "Y"):
[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process -Force
これらのコマンドは、Force を使用して、ユーザーが所有していないプロセスを停止する効果を示します。
最初のコマンドでは、Get-Process
を使用して Lsass プロセスを取得します。 パイプライン演算子は、プロセスを停止するために Stop-Process
にプロセスを送信します。 サンプル出力に示すように、このプロセスはコンピューター上の Administrator グループのメンバーのみが停止できるため、最初のコマンドは Access 拒否メッセージで失敗します。
[管理者として実行] オプションを使用して PowerShell を開き、コマンドを繰り返すと、確認を求めるメッセージが表示されます。
2 番目のコマンドは、プロンプトを抑制 強制的に を指定します。 その結果、プロセスは確認なしで停止します。
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
確認を求めずに、指定されたプロセスを停止します。 既定では、Stop-Process
は、現在のユーザーが所有していないプロセスを停止する前に確認を求められます。
プロセスの所有者を見つけるには、Get-CimInstance
コマンドレットを使用してプロセスを表す Win32_Process オブジェクトを取得し、そのオブジェクトの GetOwner メソッドを使用します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
停止するプロセスのプロセス ID を指定します。 複数の ID を指定するには、コンマを使用して ID を区切ります。 プロセスの PID を見つけるには、「Get-Process
」と入力します。
型: | Int32[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
停止するプロセス オブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
型: | Process[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
停止するプロセスのプロセス名を指定します。 複数のプロセス名をコンマで区切って入力することも、ワイルドカード文字を使用することもできます。
型: | String[] |
Aliases: | ProcessName |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
プロセスを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
このコマンドレットには、プロセス オブジェクトをパイプ処理できます。
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを使用すると、停止したプロセスを表す Process オブジェクトが返されます。
PowerShell には、Stop-Process
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
spps
- ウィンドウズ:
kill
Windows PowerShell では、Windows Management Instrumentation (WMI) Win32_Process オブジェクトのプロパティとメソッドを使用することもできます。 詳細については、「Get-CimInstance
と WMI SDK」を参照してください。
- プロセスを停止する場合は、プロセスを停止すると、プロセスに依存するプロセスとサービスが停止する可能性があることに気付く必要があります。 極端なケースでは、プロセスを停止すると Windows が停止する可能性があります。
PowerShell に関するフィードバック
PowerShell はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。