Configura e inicia um rastreamento da expressão ou comando especificado.
Sintaxe
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 [-Expression] <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>]
Descrição
O cmdlet Trace-Command configura e inicia um rastreamento da expressão ou do comando especificado. Ele funciona como Set-TraceSource, exceto pelo fato de se aplicar somente ao comando especificado.
Parâmetros
-ArgumentList <Object[]>
Especifica os parâmetros e os valores de parâmetros para o comando sendo rastreado. O alias para ArgumentList é Args. Esse recurso é especialmente útil para depuração de parâmetros dinâmicos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Command <string>
Especifica um comando que está sendo processado durante o rastreamento.
Necessário? |
true |
Posição? |
2 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Debugger
Envia a saída do rastreamento para o depurador. Você pode exibir a saída em qualquer depurador no modo de usuário ou kernel ou no Visual Studio. Esse parâmetro também seleciona a escuta do rastreamento padrão.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Expression <scriptblock>
Especifica a expressão que está sendo processada durante o rastreamento. Coloque a expressão entre parênteses e colchetes ({}).
Necessário? |
true |
Posição? |
2 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-FilePath <string>
Envia a saída do rastreamento para o arquivo especificado. Esse parâmetro também seleciona a escuta do rastreamento de arquivo.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Force
Permite que o cmdlet acrescente informações de rastreamento a um arquivo somente leitura. Usado com o parâmetro FilePath. Mesmo usando o parâmetro Force, o cmdlet não pode substituir as restrições de segurança.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <psobject>
Fornece entrada à expressão que está sendo processada durante o rastreamento.
Você pode inserir uma variável que represente a entrada que a expressão aceita ou passar um objeto através do pipeline.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-ListenerOption <TraceOptions>
Adiciona dados opcionais ao prefixo de cada mensagem de rastreamento na saída. Os valores válidos são None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId e Callstack. "None" é o padrão.
Para especificar várias opções, separe-as com vírgulas, mas sem espaços, e coloque-as entre aspas, como "ProcessID,ThreadID".
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Name <string[]>
Determina quais componentes do Windows PowerShell são rastreados. Digite o nome da fonte de rastreamento de cada componente. Os caracteres curinga são permitidos. Para localizar as fontes de rastreamento no computador, digite "Get-TraceSource".
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Option <PSTraceSourceOptions>
Determina os tipos de eventos que são rastreados.
Os valores válidos são None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert e All. "All" é o padrão.
Os seguintes valores são combinações de outros valores:
-- ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events e Scope)
-- Data: (Constructor, Dispose, Finalizer, Property, Verbose e WriteLine)
-- Errors: (Error e Exception).
Para especificar várias opções, separe-as com vírgulas, mas sem espaços, e coloque-as entre aspas, como "Constructor,Dispose".
Necessário? |
false |
Posição? |
3 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-PSHost
Envia a saída do rastreamento para o host do Windows PowerShell. Esse parâmetro também seleciona a escuta do rastreamento PSHost.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Management.Automation.PSObject Você pode canalizar objetos que representam a entrada à expressão para Trace-Command. |
Saídas |
System.Management.Automation.PSObject Retorna o rastreamento de comando no fluxo de depuração. |
Observações
O rastreamento é um método que os desenvolvedores utilizam para depurar e refinar programas. Ao rastrear, o programa gera mensagens detalhadas sobre cada etapa em seu processamento interno.
Os cmdlets de rastreamento do Windows PowerShell foram projetados para auxiliar os desenvolvedores do Windows PowerShell, mas também estão disponíveis para todos os usuários. Eles permitem que você monitore praticamente todos os aspectos da funcionalidade do shell.
Para localizar os componentes do Windows PowerShell que estão habilitados para rastreamento, digite "Get-Help Get-TraceSource".
Uma "fonte de rastreamento" é a parte de cada componente do Windows PowerShell que gerencia o rastreamento e gera as mensagens de rastreamento do componente. Para rastrear um componente, você identifica sua fonte de rastreamento.
Uma "escuta do rastreador" recebe a saída do rastreamento e a exibe ao usuário. Você pode decidir enviar os dados de rastreamento para um depurador do modo de usuário ou kernel, para o host ou console, para um arquivo ou para uma escuta personalizada derivada da classe System.Diagnostics.TraceListener.
Quando você usa o conjunto de parâmetros Command, o Windows PowerShell processa o comando exatamente da mesma forma como é processado em um pipeline. Por exemplo, a descoberta de comando não é repetida para cada objeto de entrada.
Os nomes dos parâmetros Name, Expression, Option e Command são opcionais. Se você omitir os nomes dos parâmetros, os valores dos parâmetros não nomeados deverão aparecer nesta ordem: Name, Expression, Option ou Name, Command, -Option. Se você incluir os nomes dos parâmetros, os parâmetros poderão aparecer em qualquer ordem.
Exemplo 1
C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost Descrição ----------- Esse comando inicia um rastreamento de processamento de metadados, vinculação de parâmetros e criação e destruição de cmdlets da expressão "get-process notepad". Ele usa o parâmetro Name para especificar as fontes de rastreamento, o parâmetro Expression para selecionar o comando e o parâmetro PSHost para enviar a saída para o console. Como ele não especifica opções de rastreamento ou de escuta, o comando usa os valores padrão, "All" para as opções de rastreamento e "None" para as opções de escuta.
Exemplo 2
C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt Descrição ----------- Esse comando inicia um rastreamento do processador de comando e de pipeline enquanto processa o comando "get-alias cd". Ele usa o parâmetro Name para especificar as fontes de rastreamento, o parâmetro Command para especificar o comando, o parâmetro ArgumentList para especificar os parâmetros do comando Get-Alias, o parâmetro Option para especificar as opções de rastreamento e o parâmetro ListenerOption para especificar os campos no prefixo da mensagem de rastreamento. O parâmetro FilePath envia a saída para o arquivo C:\Test\Debug.txt.
Exemplo 3
C:\PS>$a = "i*" C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a Descrição ----------- Esses comandos rastreiam as ações das operações ParameterBinding do Windows PowerShell enquanto ele processa uma expressão Get-Alias, a qual recebe a entrada do pipeline. No Trace-Command, o parâmetro InputObject passa um objeto para a expressão que está sendo processada durante o rastreamento. O primeiro comando armazena a cadeia de caracteres "i*" na variável $a. O segundo comando usa o cmdlet Trace-Command com a fonte de rastreamento ParameterBinding. O parâmetro PSHost envia a saída ao console. A expressão que está sendo processada é "get-alias $input", onde a variável $input está associada ao parâmetro InputObject. O parâmetro InputObject passa a variável $a para a expressão. Na verdade, o comando que está sendo processado durante o rastreamento é "get-alias -inputobject $a" ou "$a | get-alias".
See Also