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
Windows Vista 以降のバージョンの Windows オペレーティング システムでは、現在のユーザーが所有していないプロセスを停止するには、[管理者として実行] オプションを使用して PowerShell を起動する必要があります。 また、Confirm パラメーターを指定しない限り、確認を求めるメッセージは表示されません。
例
例 1: プロセスのすべてのインスタンスを停止する
PS C:\> Stop-Process -Name "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
このコマンドは、メモ帳プロセスの特定のインスタンスを停止します。 プロセス ID 3952 を使用してプロセスを識別します。 Confirm パラメーターは、プロセスを停止する前に PowerShell にプロンプトを表示するように指示します。 プロンプトには ID にプロセス名が追加されているため、これがベスト プラクティスです。 PassThru パラメーターは、プロセス オブジェクトをフォーマッタに渡して表示します。 このパラメーターを指定しないと、Stop-Process コマンドの後には表示されません。
例 3: プロセスを停止し、停止したことを検出する
PS C:\> calc
PS C:\> $p = Get-Process -Name "calc"
PS C:\> Stop-Process -InputObject $p
PS C:\> Get-Process | Where-Object {$_.HasExited}
この一連のコマンドは、Calc プロセスを開始および停止し、停止したプロセスを検出します。
最初のコマンドは、電卓のインスタンスを開始します。
2 番目のコマンドは、Get-Process
3 番目のコマンドは、Calc プロセスを停止します。
最後のコマンドは、実行されていたが停止しているコンピューター上のすべてのプロセスを取得します。
Get-Process を使用して、コンピューター上のすべてのプロセスを取得します。
パイプライン演算子 (|) は結果を Where-Object コマンドレットに渡し、HasExited プロパティの値が$Trueされるコマンドレットを選択します。
HasExited Get-Process | Get-Member
」と入力します。
例 4: 現在のユーザーが所有していないプロセスを停止する
PS C:\> 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 C:\> 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 C:\> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS C:\>
これらのコマンドは、Force を使用して、ユーザーが所有していないプロセスを停止する効果を示します。
最初のコマンドでは、Get-Process を使用して Lsass プロセスを取得します。
パイプライン オペレーターは、プロセスを停止するために Stop-Process
[管理者として実行] オプションを使用して PowerShell を開き、コマンドを繰り返すと、確認を求めるメッセージが表示されます。
2 番目のコマンドは、プロンプトを抑制 強制的に を指定します。 その結果、プロセスは確認なしで停止します。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
確認を求めずに、指定されたプロセスを停止します。 既定では、Stop-Process は、現在のユーザーが所有していないプロセスを停止する前に確認を求められます。
プロセスの所有者を見つけるには、Get-WmiObject コマンドレットを使用してプロセスを表す Win32_Process オブジェクトを取得し、そのオブジェクトの GetOwner メソッドを使用します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Id
停止するプロセスのプロセス ID を指定します。
複数の ID を指定するには、コンマを使用して ID を区切ります。
プロセスの PID を見つけるには、「Get-Process
」と入力します。
型: | Int32[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-InputObject
停止するプロセス オブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
型: | Process[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
停止するプロセスのプロセス名を指定します。 複数のプロセス名をコンマで区切って入力することも、ワイルドカード文字を使用することもできます。
型: | String[] |
Aliases: | ProcessName |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-PassThru
プロセスを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットには、プロセス オブジェクトをパイプ処理できます。
出力
None, System.Diagnostics.Process
このコマンドレットは、PassThru パラメーターを指定した場合、停止したプロセスを表す System.Diagnostics.Process オブジェクトを返します。 それ以外の場合、このコマンドレットは出力を生成しません。
メモ
また、組み込みのエイリアスによって
Stop-Process を参照したり、 を強制終了したり、sppsをすることもできます。 詳細については、「about_Aliases」を参照してください。 Windows PowerShell では、Windows Management Instrumentation (WMI) Win32_Process オブジェクトのプロパティとメソッドを使用することもできます。 詳細については、「Get-WmiObject と WMI SDK の
」を参照してください。 プロセスを停止する場合は、プロセスを停止すると、プロセスに依存するプロセスとサービスが停止する可能性があることに気付く必要があります。 極端なケースでは、プロセスを停止すると Windows が停止する可能性があります。