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

構文

Debug-Process [-Name] <string[]> [-確認] [-WhatIf] [<CommonParameters>]

Debug-Process [-Id] <Int32[]> [-確認] [-WhatIf] [<CommonParameters>]

Debug-Process -InputObject <Process[]> [-確認] [-WhatIf] [<CommonParameters>]

説明

Debug-Process コマンドレットは、ローカル コンピューター上で実行中の 1 つ以上のプロセスにデバッガーを結合します。プロセスを指定するには、プロセス名またはプロセス ID (PID) で指定するか、プロセス オブジェクトを Debug-Process に渡します。

Debug-Process は、現在プロセスに登録されているデバッガーを結合します。このコマンドレットを使用する前に、デバッガーがダウンロードされていて適切に設定されていることを確認します。

パラメーター

-Id <Int32[]>

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

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

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-InputObject <Process[]>

デバッグするプロセスを表すプロセス オブジェクトを指定します。プロセス オブジェクトを含んでいる変数または Get-Process コマンドのようなプロセス オブジェクトを取得するコマンドを入力します。プロセス オブジェクトを Debug-Process に渡すこともできます。

必須

true

位置

named

既定値

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-Name <string[]>

デバッグするプロセスの名前を指定します。同じ名前のプロセスが複数存在する場合は、Debug-Process は同じ名前のすべてのプロセスにデバッガーを結合します。パラメーター名 ("Name") は省略可能です。

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-確認

コマンドを実行する前に確認メッセージを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-WhatIf

実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.Int32, System.Diagnostics.Process, System.String

パイプを使用して、プロセス ID (Int32)、プロセス オブジェクト (System.Diagnostics.Process)、またはプロセス名 (String) を Debug-Process に渡すことができます。

出力

なし

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

このコマンドレットは、Windows Management Instrumentation (WMI) Win32_Process クラスの AttachDebugger メソッドを使用します。このメソッドの詳細については、MSDN (Microsoft Developer Network) ライブラリの「AttachDebugger Method (AttachDebugger メソッド)」(https://go.microsoft.com/fwlink/?LinkId=143640) を参照してください。

例 1

C:\PS>debug-process -name powershell

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






例 2

C:\PS>debug-process -name sql*

説明
-----------
このコマンドは、名前が "sql" で始まるすべてのプロセスにデバッガーを結合します。






例 3

C:\PS>debug-process winlogon, explorer, outlook

説明
-----------
このコマンドは、Winlogon、Explorer、Outlook の各プロセスにデバッガーを結合します。






例 4

C:\PS>debug-process -id 1132, 2028

説明
-----------
このコマンドは、プロセス ID 1132 および 2028 のプロセスにデバッガーを結合します。






例 5

C:\PS>get-process powershell | debug-process

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

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






例 6

C:\PS>$pid | debug-process

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

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

$pid 自動変数の詳細については、「_Automatic_Variables」を参照してください。






例 7

C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-process

説明
-----------
このコマンドは Server01 コンピューターと Server02 コンピューター上の MyApp プロセスにデバッガーを結合します。

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






例 8

C:\PS>$p = get-process powershell

C:\PS> debug-process -inputobject $p

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

最初のコマンドで、Get-Process コマンドレットを使用してコンピューター上の PowerShell プロセスを取得します。結果のプロセス オブジェクトを $p 変数に保存します。

2 番目のコマンドは、Debug-Process の InputObject パラメーターを使用して、$p 変数に格納されているプロセス オブジェクトを Debug-Process に送信します。






関連項目




目次