Compartilhar via


Debug-Process

Depura um ou mais processos em execução no computador local.

Sintaxe

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

Description

O cmdlet Debug-Process anexa um depurador a um ou mais processos em execução em um computador local. Você pode especificar os processos pelo nome do processo ou pela ID do processo (PID) ou pode canalizar objetos de processo para este cmdlet.

Este cmdlet anexa o depurador registrado para o processo. Antes de usar esse cmdlet, verifique se um depurador está instalado e configurado.

Exemplos

Exemplo 1: Vincular um depurador a um processo no computador

Debug-Process -Name powershell

Esse comando anexa um depurador ao processo do PowerShell no computador.

Exemplo 2: Anexar um depurador a todos os processos que começam com a cadeia de caracteres especificada

Debug-Process -Name note*

Esse comando anexa um depurador a todos os processos que têm nomes que começam com note.

Exemplo 3: Anexar um depurador a vários processos

Debug-Process "Winlogon", "Explorer", "Outlook"

Esse comando tenta anexar um depurador aos processos do Winlogon, do Explorer e do Outlook. O Winlogon é um processo protegido. Para depurar o Winlogon, você deve executar o comando como administrador.

Exemplo 4: Anexar um depurador a vários IDs de processo

Debug-Process -Id 1132, 2028

Esse comando anexa um depurador aos processos que têm IDs de processo 1132 e 2028.

Exemplo 5: Usar Get-Process para obter um processo e, depois, anexar um depurador a ele

Get-Process powershell | Debug-Process

Esse comando anexa um depurador aos processos do PowerShell no computador. Ele usa o cmdlet Get-Process para obter os processos do PowerShell no computador e usa um operador de pipeline (|) para enviar os processos para o cmdlet Debug-Process.

Para especificar um processo específico do PowerShell, use o parâmetro ID de Get-Process.

Exemplo 6: Anexar um depurador a um processo atual no computador local

Debug-Process -Id $PID

Esse comando anexa um depurador aos processos atuais do PowerShell no computador.

O comando usa a variável $PID automática, que contém a ID do processo do processo atual do PowerShell. Em seguida, ele usa um operador de pipeline (|) para enviar a ID do processo para o cmdlet Debug-Process.

Para obter mais informações sobre a variável automática $PID, consulte about_Automatic_Variables.

Exemplo 7: Anexar um depurador a um processo que usa o parâmetro InputObject

$P = Get-Process powershell
Debug-Process -InputObject $P

Esse comando anexa um depurador aos processos do PowerShell no computador local.

O primeiro comando usa o cmdlet Get-Process para obter os processos do PowerShell no computador. Ele salva o objeto de processo resultante na variável chamada $P.

O segundo comando usa o parâmetro InputObject do cmdlet Debug-Process para enviar o objeto de processo na variável $P.

Parâmetros

-Confirm

Solicita a confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Id

Especifica os identificadores de processo dos processos a depurar. O nome do parâmetro ID é opcional.

Para localizar o ID de processo de um processo, digite Get-Process.

Tipo:Int32[]
Aliases:PID, ProcessId
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-InputObject

Especifica os objetos de processo que representam processos a serem depurados. Insira uma variável que contenha os objetos de processo ou um comando que obtém os objetos de processo, como o cmdlet Get-Process. Você também pode canalizar objetos de processo para este cmdlet.

Tipo:Process[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Name

Especifica os nomes dos processos a serem depurados. Se houver mais de um processo com o mesmo nome, esse cmdlet anexa um depurador a todos os processos com esse nome. O parâmetro Nome é opcional.

Tipo:String[]
Aliases:ProcessName
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Int32

Você pode canalizar uma ID de processo para este cmdlet.

Process

Você pode canalizar um objeto de processo para este cmdlet.

String

Você pode canalizar um nome de processo para este cmdlet.

Saídas

None

Esse cmdlet não retorna nenhuma saída.

Observações

Esse cmdlet usa o método AttachDebugger da classe WMI (Instrumentação de Gerenciamento do Windows) Win32_Process. Para obter mais informações sobre esse método, consulte método AttachDebugger no Microsoft Learn.