Debugs one or more processes running on the local computer. (Debug-Process)
NAMEDebug-ProcessSYNOPSISDebugs one or more processes running on the local computer.SYNTAXDebug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>] Debug-Process [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>] Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]DESCRIPTIONThe 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 <Int32[]> 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 <Process[]> Specifies the process objects that represent processes to be debugged. Enter a variable that contains the process 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 <string[]> Specifies the names of the processes to be debugged. If there is more than one process with the same name, Debug-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 [<SwitchParameter>] Prompts you for confirmation before executing the command. Required? false Position? named Default value Accept pipeline input? false Accept wildcard characters? false -WhatIf [<SwitchParameter>] 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 <CommonParameters> This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer and OutVariable. For more information, type, "get-help about_commonparameters".INPUTSSystem.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.OUTPUTSNone This cmdlet does not generate any output.NOTESThis 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.Examples
EXAMPLE 1C:\PS>debug-process -name powershellDescription----------- This command attaches a debugger to the PowerShell process on the computer.EXAMPLE 2C:\PS>debug-process -name sql*Description----------- This command attaches a debugger to all processes that have names that begin with "sql".EXAMPLE 3C:\PS>debug-process winlogon, explorer, outlookDescription----------- This command attaches a debugger to the Winlogon, Explorer, and Outlook processes.EXAMPLE 4C:\PS>debug-process -id 1132, 2028Description----------- This command attaches a debugger to the processes that have process IDs 1132 and 2028.EXAMPLE 5C:\PS>get-process powershell | debug-processDescription----------- 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-Process cmdlet. To specify a particular PowerShell process, use the ID parameter of Get-Process.EXAMPLE 6C:\PS>$pid | debug-processDescription----------- 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 7C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-processDescription----------- 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 pipeline operator to send the processes to the Debug-Process cmdlet, which attaches the debuggers.EXAMPLE 8C:\PS>$p = get-process powershell C:\PS> debug-process -inputobject $pDescription----------- 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 resulting 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 C:\Windows>powershell get-help Start-Process -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export