Debug-Process

Esegue il debug di uno o più processi in esecuzione nel computer locale.

Sintassi

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

Descrizione

Il Debug-Process cmdlet collega un debugger a uno o più processi in esecuzione in un computer locale. È possibile specificare i processi in base al nome del processo o all'ID processo (PID) oppure inviare tramite pipe oggetti di elaborazione a questo cmdlet.

Questo cmdlet collega il debugger registrato per il processo. Prima di usare questo cmdlet, verificare che sia installato e configurato un debugger.

Esempio

Esempio 1: Collegare un debugger a un processo nel computer

Debug-Process -Name Powershell

Questo comando collega un debugger al processo di PowerShell nel computer.

Esempio 2: Collegare un debugger a tutti i processi che iniziano con la stringa specificata

Debug-Process -Name note*

Questo comando collega un debugger a tutti i processi con nomi che iniziano con note.

Esempio 3: Collegare un debugger a più processi

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

Questo comando tenta di collegare un debugger ai processi Winlogon, Explorer e Outlook. Winlogon è un processo protetto. Per eseguire il debug di Winlogon, è necessario eseguire il comando come amministratore.

Esempio 4: Collegare un debugger a più ID processo

Debug-Process -Id 1132, 2028

Questo comando collega un debugger ai processi con ID processo 1132 e 2028.

Esempio 5: Usare Get-Process per ottenere un processo e quindi collegarvi un debugger

Get-Process PowerShell | Debug-Process

Questo comando collega un debugger ai processi di PowerShell nel computer. Usa il Get-Process cmdlet per ottenere i processi di PowerShell nel computer e usa un operatore pipeline (|) per inviare i processi al Debug-Process cmdlet.

Per specificare un particolare processo di PowerShell, usare il parametro ID di Get-Process.

Esempio 6: Collegare un debugger a un processo corrente nel computer locale

Debug-Process -Id $PID

Questo comando collega un debugger ai processi correnti di PowerShell nel computer.

Il comando usa la $PID variabile automatica, che contiene l'ID processo del processo di PowerShell corrente. Usa quindi un operatore pipeline (|) per inviare l'ID processo al Debug-Process cmdlet .

Per altre informazioni sulla $PID variabile automatica, vedere about_Automatic_Variables.

Esempio 7: Collegare un debugger al processo specificato in più computer

Get-Process -ComputerName "Server01", "Server02" -Name "MyApp" | Debug-Process

Questo comando collega un debugger ai processi MyApp nei computer Server01 e Server02.

Il comando usa il Get-Process cmdlet per ottenere i processi MyApp nei computer Server01 e Server02. Usa un operatore pipeline per inviare i processi al Debug-Process cmdlet , che collega i debugger.

Esempio 8: Collegare un debugger a un processo che usa il parametro InputObject

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

Questo comando collega un debugger ai processi di PowerShell nel computer locale.

Il primo comando usa il Get-Process cmdlet per ottenere i processi di PowerShell nel computer. Salva l'oggetto processo risultante nella variabile denominata $P.

Il secondo comando usa il parametro InputObject del Debug-Process cmdlet per inviare l'oggetto processo nella $P variabile .

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Id

Specifica gli ID dei processi di cui eseguire il debug. Il nome del parametro ID è facoltativo.

Per trovare l'ID processo di un processo, digitare Get-Process.

Tipo:Int32[]
Alias:PID, ProcessId
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-InputObject

Specifica gli oggetti processo che rappresentano i processi di cui eseguire il debug. Immettere una variabile contenente gli oggetti processo o un comando che ottiene gli oggetti processo, ad esempio il Get-Process cmdlet . È anche possibile inviare tramite pipe oggetti di elaborazione a questo cmdlet.

Tipo:Process[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica i nomi dei processi di cui eseguire il debug. Se sono presenti più processi con lo stesso nome, questo cmdlet collega un debugger a tutti i processi con tale nome. Il parametro Name è facoltativo.

Tipo:String[]
Alias:ProcessName
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

Int32

È possibile inviare tramite pipe un ID processo a questo cmdlet.

Process

È possibile inviare tramite pipe un oggetto processo a questo cmdlet.

String

È possibile inviare tramite pipe un nome di processo a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

Questo cmdlet usa il metodo AttachDebugger della classe Win32_Process di Strumentazione gestione Windows (WMI). Per altre informazioni su questo metodo, vedere Metodo AttachDebugger in MSDN Library.