次の方法で共有


Debug-Process

ローカル コンピューターで実行されている 1 つ以上のプロセスをデバッグします。

構文

Name (既定)

Debug-Process
    [-Name] <String[]>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Id

Debug-Process
    [-Id] <Int32[]>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InputObject

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 パラメーターを使用します。

例 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 パラメーターを使用して、$P 変数にプロセス オブジェクトを送信します。

パラメーター

-Confirm

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

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:cf

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Id

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

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

パラメーターのプロパティ

型:

Int32[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:PID, ProcessId

パラメーター セット

Id
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-InputObject

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

パラメーターのプロパティ

型:

Process[]

規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

InputObject
配置:Named
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Name

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:ProcessName

パラメーター セット

Name
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:ウィスコンシン

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

Int32

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

Process

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

String

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

出力

None

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

メモ

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