Debug-Process
ローカル コンピューター上で実行中の 1 つ以上のプロセスをデバッグします。
構文
Debug-Process
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Process
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Process
-InputObject <Process[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Debug-Process
コマンドレットは、ローカル コンピューター上の 1 つ以上の実行中のプロセスにデバッガーをアタッチします。
プロセス名またはプロセス ID (PID) でプロセスを指定することも、プロセス オブジェクトをこのコマンドレットにパイプすることもできます。
このコマンドレットは、プロセスに登録されているデバッガーをアタッチします。 このコマンドレットを使用する前に、デバッガーがインストールされ、構成されていることを確認します。
例
例 1: コンピューター上のプロセスにデバッガーをアタッチする
Debug-Process -Name Powershell
このコマンドは、コンピューターの PowerShell プロセスにデバッガーを結合します。
例 2: 指定した文字列で始まるすべてのプロセスにデバッガーをアタッチする
Debug-Process -Name note*
このコマンドは、 note
で始まる名前を持つすべてのプロセスにデバッガーをアタッチします。
例 3: デバッガーを複数のプロセスにアタッチする
Debug-Process "Winlogon", "Explorer", "Outlook"
このコマンドは、Winlogon、Explorer、および Outlook のプロセスにデバッガーをアタッチしようとします。 Winlogon は保護されたプロセスです。 Winlogon をデバッグするには、管理者としてコマンドを実行する必要があります。
例 4: デバッガーを複数のプロセス ID にアタッチする
Debug-Process -Id 1132, 2028
このコマンドは、プロセス ID 1132 および 2028 のプロセスにデバッガーを結合します。
例 5: Get-Process を使用してプロセスを取得し、デバッガーをアタッチする
Get-Process PowerShell | Debug-Process
このコマンドは、コンピューターの PowerShell プロセスにデバッガーを結合します。 Get-Process
コマンドレットを使用してコンピューター上の PowerShell プロセスを取得し、パイプライン 演算子 (|
) を使用してプロセスを Debug-Process
コマンドレットに送信します。
特定の PowerShell プロセスを指定するには、 Get-Process
の ID パラメーターを使用します。
例 6: ローカル コンピューター上の現在のプロセスにデバッガーをアタッチする
Debug-Process -Id $PID
このコマンドは、コンピューターの現在の PowerShell プロセスにデバッガーを結合します。
このコマンドでは、 $PID
自動変数が使用されます。この変数には、現在の PowerShell プロセスのプロセス ID が含まれています。 次に、パイプライン演算子 (|
) を使用して、 Debug-Process
コマンドレットにプロセス ID を送信します。
$PID
自動変数の詳細については、about_Automatic_Variablesを参照してください。
例 7: InputObject パラメーターを使用するプロセスにデバッガーをアタッチする
$P = Get-Process PowerShell
Debug-Process -InputObject $P
このコマンドは、ローカル コンピューターの PowerShell プロセスにデバッガーを結合します。
最初のコマンドでは、 Get-Process
コマンドレットを使用して、コンピューター上の PowerShell プロセスを取得します。 結果のプロセス オブジェクトは、 $P
という名前の変数に保存されます。
2 番目のコマンドでは、Debug-Process
コマンドレットの InputObject パラメーターを使用して、$P
変数にプロセス オブジェクトを送信します。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Id
デバッグするプロセスのプロセス ID を指定します。 Id パラメーター名は省略可能です。
プロセスのプロセス ID を検索するには、「 Get-Process
」と入力します。
型: | Int32[] |
Aliases: | PID, ProcessId |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-InputObject
デバッグするプロセスを表すプロセス オブジェクトを指定します。 プロセス オブジェクトを含む変数、またはプロセス オブジェクトを取得するコマンド ( Get-Process
コマンドレットなど) を入力します。 このコマンドレットにプロセス オブジェクトをパイプすることもできます。
型: | Process[] |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
デバッグするプロセスの名前を指定します。 同じ名前のプロセスが複数ある場合、このコマンドレットは、その名前を持つすべてのプロセスにデバッガーをアタッチします。 Name パラメーターは省略可能です。
型: | String[] |
Aliases: | ProcessName |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットにプロセス ID をパイプできます。
このコマンドレットには、プロセス オブジェクトをパイプ処理できます。
このコマンドレットにプロセス名をパイプできます。
出力
None
このコマンドレットは、出力を返しません。
メモ
このコマンドレットは、Windows Management Instrumentation (WMI) Win32_Process クラスの AttachDebugger メソッドを使用します。 このメソッドの詳細については、MSDN ライブラリの「 AttachDebugger メソッド を参照してください。
関連リンク
PowerShell