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 パラメーターを指定しない限り、 確認 を求めるメッセージは表示されません。
例
例 1: プロセスのすべてのインスタンスを停止する
PS C:\> Stop-Process -Name "notepad"
このコマンドを実行すると、コンピューター上の Notepad プロセスのインスタンスがすべて停止されます。 メモ帳の各インスタンスは、独自のプロセスで実行されます。 Name パラメーターを使用してプロセスを指定します。プロセスはすべて同じ名前です。 Id パラメーターを使用して同じプロセスを停止する場合は、メモ帳の各インスタンスのプロセス ID を一覧表示する必要があります。
例 2: プロセスの特定のインスタンスを停止する
PS C:\> 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 パラメーターは、プロセスを停止する前に、PowerShell にプロンプトを表示するように指示します。 プロンプトには ID に加えてプロセス名が含まれているため、これがベスト プラクティスです。
PassThru パラメーターは、プロセス オブジェクトをフォーマッタに渡して表示します。 このパラメーターがないと、コマンドの後に Stop-Process
表示は行われません。
例 3: プロセスを停止し、停止したことを検出する
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
。
例 4: 現在のユーザーが所有していないプロセスを停止する
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
[ADMIN]: PS>
これらのコマンドは、 Force を使用して、ユーザーが所有していないプロセスを停止する効果を示します。
最初のコマンドでは、 を使用 Get-Process
して Lsass プロセスを取得します。 パイプライン演算子は、プロセスを停止するために にプロセスを Stop-Process
送信します。 サンプル出力に示すように、このプロセスはコンピューターの Administrator グループのメンバーのみが停止できるため、最初のコマンドは Access 拒否メッセージで失敗します。
[管理者として実行] オプションを使用して PowerShell を開き、コマンドを繰り返すと、確認を求めるメッセージが表示されます。
2 番目のコマンドは、プロンプトを抑制する Force を指定します。 その結果、プロセスは確認なしで停止されます。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
確認メッセージを表示せずに、指定されたプロセスを停止します。 既定では、 Stop-Process
現在のユーザーが所有していないプロセスを停止する前に確認を求められます。
プロセスの所有者を見つけるには、 コマンドレットを Get-CimInstance
使用してプロセスを表す Win32_Process オブジェクトを取得し、オブジェクトの GetOwner メソッドを使用します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
停止するプロセスのプロセス ID を指定します。 複数の ID を指定するには、ID をコンマで区切ります。 プロセスの PID を見つけるには、「」と入力します Get-Process
。
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
停止するプロセス オブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
Type: | Process[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
停止するプロセスのプロセス名を指定します。 複数のプロセス名をコンマで区切って入力することも、ワイルドカード文字を使用することもできます。
Type: | String[] |
Aliases: | ProcessName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
プロセスを表す オブジェクトを返します。 既定では、このコマンドレットによる出力はありません。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
このコマンドレットにプロセス オブジェクトをパイプできます。
出力
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを使用すると、このコマンドレットは停止したプロセスを表す Process オブジェクトを返します。
メモ
PowerShell には、 の次のエイリアスが Stop-Process
含まれています。
- すべてのプラットフォーム:
spps
- Windows の場合:
kill
Windows PowerShellで Windows Management Instrumentation (WMI) Win32_Process オブジェクトのプロパティとメソッドを使用することもできます。 詳細については、 と WMI SDK に関するページを参照してください Get-CimInstance
。
- プロセスを停止する場合は、プロセスを停止すると、プロセスとプロセスに依存するサービスを停止できることに気付く必要があります。 場合によっては、プロセスを停止したとき、Windows が停止する場合もあります。