Configura e avvia un'analisi dell'espressione o del comando specificato.
Sintassi
Trace-Command [-Command] <string> [-ArgumentList <Object[]>] [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>] Trace-Command [-Espressione] <scriptblock> [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]
Descrizione
Il cmdlet Trace-Command consente di configurare e avviare un'analisi dell'espressione o del comando specificato. Il funzionamento è analogo a quello di Set-TraceSource, ma si applica solo al comando specificato.
Parametri
-ArgumentList <Object[]>
Specifica i parametri e i valori dei parametri per il comando da analizzare. L'alias per ArgumentList è Args. Questa funzionalità è particolarmente utile per il debug dei parametri dinamici.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Command <string>
Specifica un comando che viene elaborato durante l'analisi.
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Debugger
Invia l'output di analisi al debugger. È possibile visualizzare l'output in qualsiasi debugger in modalità utente o kernel oppure in Visual Studio. Questo parametro consente inoltre di selezionare il listener di analisi predefinito.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Espressione <scriptblock>
Specifica l'espressione che viene elaborata durante l'analisi. Racchiudere l'espressione tra parentesi graffe ({}).
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-FilePath <string>
Invia l'output di analisi al file specificato. Questo parametro consente inoltre di selezionare il listener di analisi dei file.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Force
Consente al cmdlet di aggiungere informazioni di analisi a un file di sola lettura. Utilizzato con il parametro FilePath. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InputObject <psobject>
Fornisce l'input all'espressione che viene elaborata durante l'analisi.
È possibile immettere una variabile che rappresenta l'input accettato dall'espressione oppure passare un oggetto attraverso la pipeline.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-ListenerOption <TraceOptions>
Aggiunge dati facoltativi al prefisso di ogni messaggio di analisi nell'output. I valori validi sono None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId e Callstack. "None" rappresenta il valore predefinito.
Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "ProcessID,ThreadID".
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Name <string[]>
Determina i componenti di Windows PowerShell analizzati. Immettere il nome dell'origine di analisi di ciascun componente. È consentito l'utilizzo di caratteri jolly. Per trovare le origini di analisi disponibili nel computer, digitare "Get-TraceSource".
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Option <PSTraceSourceOptions>
Determina il tipo di eventi analizzati.
I valori validi sono None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert e All. Il valore predefinito è "All".
I valori seguenti sono combinazioni di altri valori:
-- ExecutionFlow: Constructor, Dispose, Finalizer, Method, Delegates, Events e Scope
-- Data: Constructor, Dispose, Finalizer, Property, Verbose e WriteLine
-- Errors: Error ed Exception.
Per specificare più opzioni, utilizzare virgole ma non spazi per separarle e racchiuderle tra virgolette, ad esempio "Constructor,Dispose".
Obbligatorio? |
false |
Posizione? |
3 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-PSHost
Invia l'output di analisi all'host di Windows PowerShell. Questo parametro consente inoltre di selezionare il listener di analisi PSHost.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Management.Automation.PSObject È possibile reindirizzare oggetti che rappresentano input dell'espressione a Trace-Command. |
Output |
System.Management.Automation.PSObject Restituisce l'analisi del comando nel flusso di debug. |
Note
L'analisi viene utilizzata dagli sviluppatori per eseguire il debug dei programmi e ridefinirli. Durante l'analisi il programma genera messaggi dettagliati sui singoli passaggi della relativa elaborazione interna.
I cmdlet di analisi di Windows PowerShell sono progettati specificamente per gli sviluppatori di Windows PowerShell, ma possono essere utilizzati da tutti gli utenti. Consentono infatti di monitorare quasi tutti gli aspetti della funzionalità della shell.
Per trovare i componenti di Windows PowerShell abilitati per l'analisi, digitare "Get-Help Get-TraceSource".
L'"origine di analisi" è rappresentata dalla parte di ciascun componente di Windows PowerShell che gestisce l'analisi e genera i relativi messaggi per il componente. Per analizzare un componente, è necessario identificarne l'origine di analisi.
Il "listener di analisi" riceve l'output dell'analisi e lo visualizza all'utente. È possibile scegliere di inviare i dati di analisi a un debugger in modalità utente o kernel, all'host o alla console, a un file oppure a un listener personalizzato derivato dalla classe System.Diagnostics.TraceListener.
Quando si utilizza il set di parametri Command, il comando verrà elaborato come se fosse incluso in una pipeline. Ad esempio, l'individuazione del comando non verrà ripetuta per ogni oggetto in ingresso.
I nomi dei parametri Name, Expression, Option e Command sono facoltativi. Se si omettono i nomi dei parametri, i valori dei parametri senza nome devono essere riportati nell'ordine seguente: Name, Expression, Option oppure Name, Command, -Option. Se si includono i nomi dei parametri, i parametri possono essere riportati in qualsiasi ordine.
Esempio 1
C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost Descrizione ----------- Tramite questo comando verrà avviata un'analisi dell'elaborazione dei metadati, del binding dei parametri e della creazione e distruzione dei cmdlet dell'espressione "get-process notepad". Verranno utilizzati il parametro Name per specificare le origini di analisi, il parametro Expression per specificare il comando e il parametro PSHost per inviare l'output alla console. Poiché non viene specificata nessuna opzione per l'analisi o il listener, verranno utilizzate le impostazioni predefinite, ovvero "All" per le opzioni di analisi e "None" per le opzioni del listener.
Esempio 2
C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt Descrizione ----------- Tramite questo comando verrà avviata un'analisi dei processori dei comandi e della pipeline durante l'elaborazione del comando "get-alias cd". Verranno utilizzati il parametro Name per specificare le origini di analisi, il parametro Command per specificare il comando, il parametro ArgumentList per specificare i parametri del comando Get-Alias, il parametro Option per specificare le opzioni di analisi e il parametro ListenerOption per specificare i campi nel prefisso del messaggio di analisi. Verrà infine utilizzato il parametro FilePath per inviare l'output al file C:\Test\Debug.txt.
Esempio 3
C:\PS>$a = "i*" C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a Descrizione ----------- Tramite questi comandi verranno analizzate le azioni delle operazioni ParameterBinding di Windows PowerShell durante l'elaborazione di un'espressione Get-Alias il cui input deriva dalla pipeline. In Trace-Command verrà utilizzato il parametro InputObject per passare un oggetto all'espressione che viene elaborata durante l'analisi. Tramite il primo comando la stringa "i*" verrà archiviata nella variabile $a. Nel secondo comando verrà utilizzato il cmdlet Trace-Command con l'origine di analisi ParameterBinding. Verrà quindi utilizzato il parametro PSHost per inviare l'output alla console. L'espressione di cui è in corso l'elaborazione è "get-alias $input", in cui la variabile $input è associata al parametro InputObject. Tramite il parametro InputObject la variabile $a verrà passata all'espressione. Il comando di cui è in corso l'elaborazione durante l'analisi è di fatto "get-alias -inputobject $a" o "$a | get-alias".
Vedere anche