Trace-Command

Configura e inicia um rastreamento da expressão ou comando especificado.

Syntax

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

Description

O Trace-Command cmdlet configura e inicia um rastreamento da expressão ou comando especificado. Ele funciona como Set-TraceSource, exceto que se aplica apenas ao comando especificado.

Exemplos

Exemplo 1: Processamento de metadados de rastreamento, associação de parâmetros e uma expressão

Este exemplo inicia um rastreamento de processamento de metadados, associação de parâmetros e criação e destruição de cmdlet da Get-Process Notepad expressão.

Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost

Ele usa o parâmetro Name para especificar as fontes de rastreamento, o parâmetro Expression para especificar o comando e o parâmetro PSHost para enviar a saída para o console. Como ele não especifica nenhuma opção de rastreamento ou opções de ouvinte, o comando usa os padrões:

  • Tudo para as opções de rastreamento
  • Nenhuma para as opções de ouvinte

Exemplo 2: Rastrear as ações de operações ParameterBinding

Este exemplo rastreia as ações das operações ParameterBinding do PowerShell enquanto processa uma Get-Alias expressão que recebe entrada do pipeline.

$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A

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 a cadeia de caracteres i* na variável. O segundo comando usa o Trace-Command cmdlet com a origem de rastreamento ParameterBinding. O parâmetro PSHost envia a saída para o console.

A expressão que está sendo processada é Get-Alias $Input, onde a $Input variável 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" or "$A | Get-Alias.

Parâmetros

-ArgumentList

Especifica os parâmetros e valores de parâmetro para o comando que está sendo rastreado. O alias para ArgumentList é Args. Esse recurso é útil para depurar parâmetros dinâmicos.

Para obter mais informações sobre o comportamento de ArgumentList, consulte about_Splatting.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Command

Especifica um comando que está sendo processado durante o rastreamento.

Quando você usa esse parâmetro, o PowerShell processa o comando exatamente como ele seria processado em um pipeline. Por exemplo, a descoberta de comandos não é repetida para cada objeto de entrada.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Debugger

Indica que o cmdlet envia a saída de rastreamento para o depurador. Você pode exibir a saída em qualquer modo de usuário ou depurador do modo kernel, ou ainda no Visual Studio. Esse parâmetro também seleciona o ouvinte de rastreamento padrão.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expression

Especifica a expressão que está sendo processada durante o rastreamento. Coloque a expressão entre chaves ({}).

Type:ScriptBlock
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Especifica um arquivo para o qual o cmdlet envia a saída de rastreamento. Esse parâmetro também seleciona o ouvinte de rastreamento do arquivo.

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Força o comando a ser executado sem solicitar a confirmação do usuário. Usado com o parâmetro FilePath . Mesmo usando o parâmetro Force , o cmdlet não pode substituir as restrições de segurança.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica a entrada para a expressão que está sendo processada durante o rastreamento. Você pode inserir uma variável que representa a entrada que aceita a expressão ou passar um objeto por meio do pipeline.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ListenerOption

Especifica dados opcionais para o prefixo de cada mensagem de rastreamento na saída. Os valores aceitáveis para esse parâmetro são:

  • None
  • LogicalOperationStack
  • DateTime
  • Timestamp
  • ProcessId
  • ThreadId
  • Callstack

None é o padrão.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro ListenerOption como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use a conclusão de tabulação nos valores.

Type:TraceOptions
Accepted values:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Especifica uma matriz de componentes do PowerShell que são rastreados. Insira o nome da origem de rastreamento de cada componente. Caracteres curinga são permitidos. Para localizar as fontes de rastreamento no computador, digite Get-TraceSource.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Option

Determina o tipo de eventos que são rastreados. Os valores aceitáveis para esse parâmetro são:

  • None
  • Constructor
  • Dispose
  • Finalizer
  • Method
  • Property
  • Delegates
  • Events
  • Exception
  • Lock
  • Error
  • Errors
  • Warning
  • Verbose
  • WriteLine
  • Data
  • Scope
  • ExecutionFlow
  • Assert
  • All

All é o padrão.

Os seguintes valores são combinações de outros valores:

  • ExecutionFlow: , DisposeConstructor, Finalizer, Method, , Delegates, , EventsScope
  • Data: , DisposeConstructor, Finalizer, , Property, Verbose,WriteLine
  • Errors: Error, Exception

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro Option como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use a conclusão de tabulação nos valores.

Type:PSTraceSourceOptions
Accepted values:None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSHost

Indica que o cmdlet envia a saída de rastreamento para o host do PowerShell. Esse parâmetro também seleciona o ouvinte de rastreamento PSHost.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Você pode canalizar objetos que representam a entrada para a expressão para esse cmdlet.

Saídas

PSObject

Esse cmdlet não retorna nenhuma saída própria. O comando traced pode retornar a saída. Esse cmdlet grava o rastreamento de comando no fluxo de depuração.

Observações

O Windows PowerShell inclui os seguintes aliases para Trace-Command:

  • trcm

O rastreamento é um método utilizado pelos desenvolvedores para depurar e aprimorar os programas. Ao realizar o rastreamento, o componente gera mensagens detalhadas sobre cada etapa no seu processamento interno. Os cmdlets de rastreamento do PowerShell foram projetados para ajudar os desenvolvedores do PowerShell, mas estão disponíveis para todos os usuários. Eles permitem monitorar quase todos os aspectos da funcionalidade do shell.

Uma fonte de rastreamento é a parte de cada componente do PowerShell que gerencia o rastreamento e gera mensagens de rastreamento para o componente. Para rastrear um componente, você deve identificar sua origem de rastreamento.

Use Get-TraceSource para ver uma lista de componentes do PowerShell habilitados para rastreamento.

Um ouvinte de rastreamento recebe a saída do rastreamento e a exibe para o usuário. Você pode optar por enviar os dados de rastreamento para um depurador de modo de usuário ou kernel, para o host ou console, para um arquivo ou para um ouvinte personalizado derivado da classe System.Diagnostics.TraceListener .