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: コンピューター上のプロセスにデバッガーをアタッチする
PS C:\> Debug-Process -Name "Windows Powershell"
このコマンドは、コンピューター上の Windows PowerShell プロセスにデバッガーをアタッチします。
例 2: 指定した文字列で始まるすべてのプロセスにデバッガーをアタッチする
PS C:\> Debug-Process -Name "SQL*"
このコマンドは、名前が SQL で始まるすべてのプロセスにデバッガーをアタッチします。
例 3: デバッガーを複数のプロセスにアタッチする
PS C:\> Debug-Process "Winlogon", "Explorer", "Outlook"
このコマンドは、デバッガーを Winlogon、Explorer、および Outlook プロセスにアタッチします。
例 4: デバッガーを複数のプロセス ID にアタッチする
PS C:\> Debug-Process -Id 1132, 2028
このコマンドは、プロセス ID 1132 と 2028 を持つプロセスにデバッガーをアタッチします。
例 5: Get-Process を使用してプロセスを取得し、デバッガーをアタッチする
PS C:\> Get-Process "Windows PowerShell" | Debug-Process
このコマンドは、コンピューター上の Windows PowerShell プロセスにデバッガーをアタッチします。 Get-Process コマンドレットを使用してコンピューター上の Windows PowerShell プロセスを取得し、パイプライン演算子 (|) を使用してプロセスを Debug-Process コマンドレットに送信します。
特定の PowerShell プロセスを指定するには、 Get-Process の ID パラメーターを使用します。
例 6: ローカル コンピューター上の現在のプロセスにデバッガーをアタッチする
PS C:\> $PID | Debug-Process
このコマンドは、コンピューター上の現在の Windows PowerShell プロセスにデバッガーをアタッチします。
このコマンドでは、現在の Windows PowerShell プロセスのプロセス ID を含む $PID 自動変数を使用します。 次に、パイプライン演算子 (|) を使用して、プロセス ID を Debug-Process コマンドレットに送信します。
$PID自動変数の詳細については、about_Automatic_Variablesを参照してください。
例 7: 複数のコンピューターで指定したプロセスにデバッガーをアタッチする
PS C:\> Get-Process -ComputerName "Server01", "Server02" -Name "MyApp" | Debug-Process
このコマンドは、Server01 および Server02 コンピューター上の MyApp プロセスにデバッガーをアタッチします。
このコマンドでは、 Get-Process コマンドレットを使用して、Server01 コンピューターと Server02 コンピューター上の MyApp プロセスを取得します。 パイプライン演算子を使用して、デバッガーをアタッチする Debug-Process コマンドレットにプロセスを送信します。
例 8: InputObject パラメーターを使用するプロセスにデバッガーをアタッチする
PS C:\> $P = Get-Process "Windows PowerShell"
PS C:\> Debug-Process -InputObject $P
このコマンドは、ローカル コンピューター上の Windows PowerShell プロセスにデバッガーをアタッチします。
最初のコマンドでは、 Get-Process コマンドレットを使用して、コンピューター上の Windows 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 |
入力
System.Int32, System.Diagnostics.Process, System.String
このコマンドレットには、プロセス ID (Int32)、プロセス オブジェクト (System.Diagnostics.Process)、またはプロセス名 (String) をパイプ処理できます。
出力
None
このコマンドレットは出力を生成しません。
メモ
- このコマンドレットでは、Windows Management Instrumentation (WMI) Win32_Process クラスの AttachDebugger メソッドを使用します。 このメソッドの詳細については、MSDN ライブラリ AttachDebugger メソッドの を参照してください。