次の方法で共有


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 メソッドの を参照してください。