Debug-Process
針對在本機電腦上執行的一個或多個處理序,進行偵錯。
語法
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。
請參閱
概念
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process