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 将调试程序附加到在本地计算机上运行的一个或多个进程。可以通过进程名称或进程 ID (PID) 来指定进程,也可以将进程对象通过管道传送给 Debug-Process。
Debug-Process 将附加当前为该进程注册的调试程序。使用此 cmdlet 之前,请先验证调试程序是否已下载并正确配置。
参数
-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 |
-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 可以通过管道将进程 ID (Int32)、进程对象 (System.Diagnostics.Process) 或进程名称 (String) 传递给 Debug-Process。 |
输出 |
无 此 cmdlet 将不产生任何输出。 |
说明
此 cmdlet 使用 Windows Management Instrumentation (WMI) Win32_Process 类的 AttachDebugger 方法。有关此方法的详细信息,请参阅 MSDN (Microsoft Developer Network) 库中的“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 cmdlet 来获取计算机上的 PowerShell 进程,然后使用管道运算符 (|) 将进程发送给 Debug-Process cmdlet。
要指定特定的 PowerShell 进程,请使用 Get-Process 的 ID 参数。
示例 6
C:\PS>$pid | debug-process
说明
-----------
此命令将调试程序附加到计算机上的当前 PowerShell 进程。
它使用 $pid 自动变量,其中包含当前 PowerShell 进程的进程 ID。然后,它使用管道运算符 (|) 将进程 ID 发送给 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