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"

このコマンドは、コンピューターの 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

このコマンドは、コンピューターの PowerShell プロセスにデバッガーを結合します。 このコマンドレットを Get-Process 使用してコンピューター上の PowerShell プロセスを取得し、パイプライン 演算子 (|) を使用してプロセスをコマンドレットに Debug-Process 送信します。

特定の PowerShell プロセスを指定するには、次の Get-ProcessID パラメーターを使用します。

例 6: ローカル コンピューター上の現在のプロセスにデバッガーをアタッチする

PS C:\> $PID | Debug-Process

このコマンドは、コンピューターの現在の PowerShell プロセスにデバッガーを結合します。

このコマンドは、現在の $PID PowerShell プロセスのプロセス ID を含む自動変数を使用します。 次に、パイプライン演算子 (|) を使用して、プロセス ID をコマンドレットに Debug-Process 送信します。

自動変数の$PID詳細については、about_Automatic_Variablesを参照してください

例 7: InputObject パラメーターを使用するプロセスにデバッガーをアタッチする

PS C:\> $P = Get-Process "Windows PowerShell"
PS C:\> Debug-Process -InputObject $P

このコマンドは、ローカル コンピューターの PowerShell プロセスにデバッガーを結合します。

最初のコマンドでは、コマンドレットを Get-Process 使用して、コンピューター上の PowerShell プロセスを取得します。 これにより、結果のプロセス オブジェクトが名前付きの $P変数に保存されます。

2 番目のコマンドでは、 コマンドレットの InputObject パラメーターを Debug-Process 使用して、変数内のプロセス オブジェクトを $P 送信します。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

デバッグするプロセスのプロセス ID を指定します。 Id パラメーター名は省略可能です。

プロセスのプロセス ID を検索するには、「.」と入力します Get-Process

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

デバッグするプロセスを表すプロセス オブジェクトを指定します。 プロセス オブジェクトを含む変数、またはプロセス オブジェクトを取得するコマンド (コマンドレットなど) を Get-Process 入力します。 このコマンドレットにプロセス オブジェクトをパイプすることもできます。

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

デバッグするプロセスの名前を指定します。 同じ名前のプロセスが複数ある場合、このコマンドレットは、その名前を持つすべてのプロセスにデバッガーをアタッチします。 Name パラメーターは省略可能です。

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Int32

このコマンドレットにプロセス ID をパイプできます。

Process

このコマンドレットには、プロセス オブジェクトをパイプ処理できます。

String

このコマンドレットにプロセス名をパイプできます。

出力

None

このコマンドレットは、出力を返しません。

メモ

このコマンドレットは、Windows Management Instrumentation (WMI) Win32_Process クラスの AttachDebugger メソッドを使用します。 このメソッドの詳細については、MSDN ライブラリの AttachDebugger メソッドを参照してください