針對在本機電腦上執行的一個或多個處理序,進行偵錯。

語法

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

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

Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]

描述

Debug-Process Cmdlet 會將偵錯工具附加到於本機電腦上執行的一個或多個處理序。您可以利用處理序名稱或處理序識別碼 (PID) 指定處理序,或者您可以透過管線將處理序物件傳遞到 Debug-Process。

Debug-Process 會附加目前為該處理序所登錄的偵錯工具。在使用此 Cmdlet 之前,請確認偵錯工具已下載且正確設定。

參數

-Id <Int32[]>

指定要偵錯之處理序的處理序識別碼。參數名稱 ("-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

-Confirm

在執行命令前先提示確認。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-WhatIf

說明執行命令時將會發生何種情況,但不會實際執行命令。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.Int32、System.Diagnostics.Process、System.String

您可以透過管線將處理序識別碼 (Int32)、處理序物件 (System.Diagnostics.Process) 或處理序名稱 (String) 傳遞到 Debug-Process。

輸出

這個 Cmdlet 不會產生任何輸出。

附註

此 Cmdlet 會使用 Windows Management Instrumentation (WMI) Win32_Process 類別的 AttachDebugger 方法。如需這個方法的詳細資訊,請參閱 MSDN (Microsoft Developer Network) Library (https://go.microsoft.com/fwlink/?LinkId=143640) 中的「AttachDebugger 方法」(英文)。

範例 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

描述
-----------
這個命令會將偵錯工具附加到處理序識別碼為 1132 與 2028 的處理序。






範例 5

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

描述
-----------
這個命令會將偵錯工具附加到電腦中的 PowerShell 處理序。該命令使用 Get-Process Cmdlet 取得電腦上的 PowerShell 處理序,並且使用管線運算子 (|) 傳送處理序到 Debug-Process Cmdlet。

若要指定特定的 PowerShell 處理序,請使用 Get-Process 的 ID 參數。






範例 6

C:\PS>$pid | debug-process

描述
-----------
這個命令會將偵錯工具附加到電腦中目前的 PowerShell 處理序。

它使用包含目前 PowerShell 處理序之處理序識別碼的 $pid 自動變數。接著,它會使用管線運算子 (|) 傳送處理序識別碼給 Debug-Process Cmdlet。

如需 $pid 自動變數的詳細資訊,請參閱 about_Automatic_Variables。






範例 7

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

描述
-----------
這個命令會將偵錯工具附加至 Server01 與 Server02 電腦中的 MyApp 處理序。

它使用 Get-Process Cmdlet 取得 Server01 與 Server02 電腦上的 MyApp 處理序。然後,它會使用管線運算子傳送處理序給附加偵測工具的 Debug-Process Cmdlet。






範例 8

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

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

描述
-----------
這個命令會將偵錯工具附加到本機電腦中的 PowerShell 處理序。

第一個命令使用 Get-Process Cmdlet 取得電腦上的 PowerShell 處理序。它會將產生的處理序物件儲存在 $p 變數中。

第二個命令使用 Debug-Process 的 InputObject 參數,將 $p 變數中的處理序物件提交給 Debug-Process。






請參閱




目錄