Condividi tramite


Trace-Command

Configura e avvia una traccia dell'espressione o del comando specificato.

Sintassi

Trace-Command
     [-Name] <String[]>
     [-Expression] <ScriptBlock>
     [[-Option] <PSTraceSourceOptions>]
     [-InputObject <PSObject>]
     [-ListenerOption <TraceOptions>]
     [-FilePath <String>]
     [-Force]
     [-Debugger]
     [-PSHost]
     [<CommonParameters>]
Trace-Command
     [-Name] <String[]>
     [-Command] <String>
     [[-Option] <PSTraceSourceOptions>]
     [-InputObject <PSObject>]
     [-ArgumentList <Object[]>]
     [-ListenerOption <TraceOptions>]
     [-FilePath <String>]
     [-Force]
     [-Debugger]
     [-PSHost]
     [<CommonParameters>]

Descrizione

Il cmdlet Trace-Command configura e avvia una traccia dell'espressione o del comando specificato. Funziona come Set-TraceSource, ad eccezione del fatto che si applica solo al comando specificato.

Esempio

Esempio 1: Elaborazione dei metadati di traccia, associazione di parametri e espressione

PS C:\> Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost

Questo comando avvia una traccia dell'elaborazione dei metadati, dell'associazione dei parametri e della creazione e della distruzione dei cmdlet dell'espressione Get-Process Notepad. Usa il parametro Name per specificare le origini di traccia, il parametro expression per specificare il comando e il parametro PSHost per inviare l'output alla console. Poiché non specifica opzioni di traccia o listener, il comando usa le opzioni predefinite--All per le opzioni di traccia e Nessuna per le opzioni del listener.

Esempio 2: Tracciare le azioni delle operazioni ParameterBinding

PS C:\> $A = "i*"
PS C:\> Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A

Questi comandi tracciano le azioni delle operazioni ParameterBinding di Windows PowerShell mentre elabora un'espressione Get-Alias che accetta input dalla pipeline.

In Trace-Command, il parametro inputObject passa un oggetto all'espressione che viene elaborata durante la traccia.

Il primo comando archivia la stringa "i*" nella variabile $A. Il secondo comando usa il cmdlet Trace-Command con l'origine di traccia ParameterBinding. Il parametro PSHost invia l'output alla console.

L'espressione elaborata viene , dove la variabile $Input è associata al parametro inputObject . Il parametro InputObject passa la variabile $A all'espressione. In effetti, il comando da elaborare durante la traccia è Get-Alias -InputObject $A" or "$A | Get-Alias.

Parametri

-ArgumentList

Specifica i parametri e i valori dei parametri per il comando da tracciare. L'alias per ArgumentList è Args. Questa funzionalità è particolarmente utile per il debug di parametri dinamici.

Tipo:Object[]
Alias:Args
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Command

Specifica un comando che viene elaborato durante la traccia.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Debugger

Indica che il cmdlet invia l'output di traccia al debugger. È possibile visualizzare l'output in qualsiasi debugger in modalità utente o kernel o in Visual Studio. Questo parametro seleziona anche il listener di traccia predefinito.

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

-Expression

Specifica l'espressione che viene elaborata durante la traccia. Racchiudere l'espressione tra parentesi graffe ({}).

Tipo:ScriptBlock
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FilePath

Specifica un file a cui il cmdlet invia l'output della traccia. Questo parametro seleziona anche il listener di traccia file.

Tipo:String
Alias:PSPath
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Force

Forza l'esecuzione del comando senza chiedere conferma dell'utente. Utilizzato con il parametro FilePath. Anche usando il parametro Force, il cmdlet non può eseguire l'override delle restrizioni di sicurezza.

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

-InputObject

Specifica l'input per l'espressione che viene elaborata durante la traccia.

È possibile immettere una variabile che rappresenta l'input accettato dall'espressione o passare un oggetto attraverso la pipeline.

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

-ListenerOption

Specifica i dati facoltativi per il prefisso di ogni messaggio di traccia nell'output. I valori accettabili per questo parametro sono:

  • Nessuno
  • LogicalOperationStack
  • DateTime
  • Timestamp
  • ProcessId
  • ThreadId
  • Callstack

Nessuna è l'impostazione predefinita.

Per specificare più opzioni, separarle con virgole, ma senza spazi e racchiuderle tra virgolette, ad esempio "ProcessID,ThreadID".

Tipo:TraceOptions
Valori accettati:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Name

Specifica una matrice di componenti di Windows PowerShell tracciati. Immettere il nome dell'origine di traccia di ogni componente. Sono consentiti caratteri jolly. Per trovare le origini di traccia nel computer, digitare Get-TraceSource.

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

-Option

Specifica il tipo di eventi tracciati. I valori accettabili per questo parametro sono:

  • Nessuno
  • Costruttore
  • Disporre
  • Finalizzatore
  • Metodo
  • Proprietà
  • Delegati
  • Avvenimenti
  • Eccezione
  • Serratura
  • Errore
  • Errori
  • Avvertimento
  • Prolisso
  • WriteLine
  • Dati
  • Portata
  • ExecutionFlow
  • Asserire
  • Tutto

Tutto è l'impostazione predefinita.

I valori seguenti sono combinazioni di altri valori:

  • ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events e Scope)
  • Dati: (Constructor, Dispose, Finalizer, Property, Verbose e WriteLine)
  • Errori: (errore ed eccezione).

Per specificare più opzioni, separarle con virgole, ma senza spazi e racchiuderle tra virgolette, ad esempio "Costruttore,Dispose".

Tipo:PSTraceSourceOptions
Valori accettati:None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All
Posizione:2
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PSHost

Indica che il cmdlet invia l'output di traccia all'host di Windows PowerShell. Questo parametro seleziona anche il listener di traccia PSHost.

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

Input

PSObject

È possibile inviare tramite pipe oggetti che rappresentano l'input all'espressione per Trace-Command.

Output

PSObject

Restituisce la traccia del comando nel flusso di debug.

Note

  • La traccia è un metodo che gli sviluppatori usano per eseguire il debug e perfezionare i programmi. Durante la traccia, il programma genera messaggi dettagliati su ogni passaggio nell'elaborazione interna.

  • I cmdlet di traccia di Windows PowerShell sono progettati per aiutare gli sviluppatori di Windows PowerShell, ma sono disponibili per tutti gli utenti. Consentono di monitorare quasi ogni aspetto della funzionalità della shell.

  • Per trovare i componenti di Windows PowerShell abilitati per la traccia, digitare Get-Help Get-TraceSource.

    Un'origine di traccia è la parte di ogni componente di Windows PowerShell che gestisce la traccia e genera messaggi di traccia per il componente. Per tracciare un componente, identificarne l'origine di traccia.

    Un listener di traccia riceve l'output della traccia e lo visualizza all'utente. È possibile scegliere di inviare i dati di traccia a un debugger in modalità utente o in modalità kernel, all'host o alla console, a un file o a un listener personalizzato derivato dalla classe System.Diagnostics.TraceListener.

  • Quando si usa il set di parametri commandSet, Windows PowerShell elabora il comando esattamente come viene elaborato in una pipeline. Ad esempio, l'individuazione dei comandi non viene ripetuta per ogni oggetto in ingresso.

  • I nomi dei Name, Expression, Optione Command parametri sono facoltativi. Se si omettono i nomi dei parametri, i valori dei parametri senza nome devono essere visualizzati in questo ordine: Name, Expression, Option o Name, Command, Option. Se si includono i nomi dei parametri, i parametri possono essere visualizzati in qualsiasi ordine.