powershellscripts.com

Tutorials  PowerShell Cmdlet Help for Debug-Process



NAME
Debug-Process

SYNOPSIS
Debugs one or more processes running on the local computer.

SYNTAX
Debug-Process [-Name] [-Confirm] [-WhatIf] []

Debug-Process [-Id] [-Confirm] [-WhatIf] []

Debug-Process -InputObject [-Confirm] [-WhatIf] []


DESCRIPTION
The Debug-Process cmdlet attaches a debugger to one or more running processes on a local computer. You can specify
the processes by their process name or process ID (PID), or you can pipe process objects to Debug-Process.

Debug-Process attaches the debugger that is currently registered for the process. Before using this cmdlet, verify
that a debugger is downloaded and correctly configured.


PARAMETERS
-Id
Specifies the process IDs of the processes to be debugged. The parameter name ("-Id") is optional.

To find the process ID of a process, type "get-process".

Required? true
Position? 1
Default value None
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? false

-InputObject
Specifies the process objects that represent processes to be debugged. Enter a variable that contains the proce
ss objects or a command that gets the process objects, such as a Get-Process command. You can also pipe process
objects to Debug-Process.

Required? true
Position? named
Default value
Accept pipeline input? true (ByValue)
Accept wildcard characters? false

-Name
Specifies the names of the processes to be debugged. If there is more than one process with the same name, Debu
g-Process attaches a debugger to all processes with that name. The parameter name ("Name") is optional.

Required? true
Position? 1
Default value
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? false

-Confirm []
Prompts you for confirmation before executing the command.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false

-WhatIf []
Describes what would happen if you executed the command without actually executing the command.

Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false


This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer and OutVariable. For more information, type,
"get-help about_commonparameters".

INPUTS
System.Int32, System.Diagnostics.Process, System.String
You can pipe a process ID (Int32), a process object (System.Diagnostics.Process), or a process name (String) to
Debug-Process.


OUTPUTS
None
This cmdlet does not generate any output.


NOTES


This cmdlet uses the AttachDebugger method of the Windows Management Instrumentation (WMI) Win32_Process class.
For more information about this method, see "AttachDebugger Method" in the MSDN (Microsoft Developer Network)
library at http://go.microsoft.com/fwlink/?LinkId=143640.


-------------------------- EXAMPLE 1 --------------------------

C:\PS>debug-process -name powershell


Description
-----------
This command attaches a debugger to the PowerShell process on the computer.





-------------------------- EXAMPLE 2 --------------------------

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


Description
-----------
This command attaches a debugger to all processes that have names that begin with "sql".





-------------------------- EXAMPLE 3 --------------------------

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


Description
-----------
This command attaches a debugger to the Winlogon, Explorer, and Outlook processes.





-------------------------- EXAMPLE 4 --------------------------

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


Description
-----------
This command attaches a debugger to the processes that have process IDs 1132 and 2028.





-------------------------- EXAMPLE 5 --------------------------

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


Description
-----------
This command attaches a debugger to the PowerShell processes on the computer. It uses the Get-Process cmdlet to get
the PowerShell processes on the computer, and it uses a pipeline operator (|) to send the processes to the Debug-P
rocess cmdlet.

To specify a particular PowerShell process, use the ID parameter of Get-Process.





-------------------------- EXAMPLE 6 --------------------------

C:\PS>$pid | debug-process


Description
-----------
This command attaches a debugger to the current PowerShell processes on the computer.

It uses the $pid automatic variable, which contains the process ID of the current PowerShell process. Then, it uses
a pipeline operator (|) to send the process ID to the Debug-Process cmdlet.

For more information about the $pid automatic variable, see about_Automatic_Variables.





-------------------------- EXAMPLE 7 --------------------------

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


Description
-----------
This command attaches a debugger to the MyApp processes on the Server01 and Server02 computers.

It uses the Get-Process cmdlet to get the MyApp processes on the Server01 and Server02 computers. It uses a pipelin
e operator to send the processes to the Debug-Process cmdlet, which attaches the debuggers.





-------------------------- EXAMPLE 8 --------------------------

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

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


Description
-----------
This command attaches a debugger to the PowerShell processes on the local computer.

The first command uses the Get-Process cmdlet to get the PowerShell processes on the computer. It saves the resulti
ng process object in the $p variable.

The second command uses the InputObject parameter of Debug-Process to submit the process object in the $p variable
to Debug-Process.






RELATED LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=135206
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process