Trace-Command

Trace an expression or command

Syntax
      Trace-Command [-command] string [-argumentList Object[]] [-name] string[] 
             [-option] PSTraceSourceOptions [-FilePath string]
                [-debugger] [-PSHost] [-ListenerOption TraceOptions]
                   [-inputObject psobject] 
                      [-force] [CommonParameters]

      Trace-Command [-Expression] scriptblock [-Name] string[] 
             [-Option] PSTraceSourceOptions [-FilePath string]
                [-Debugger] [-PSHost] [-ListenerOption TraceOptions]
                   [-InputObject psobject] [-Force] [CommonParameters]

Key
   -Name string[]
       Name of the trace source of each component to be traced.
       Wildcards are permitted.
       Use Get-TraceSource to find the trace sources on your computer.

   -ArgumentList Object[]
       Parameters and parameter values for the command being traced.
       This feature is especially useful for debugging dynamic parameters.

   -Command string
       A command that is being processed during the trace.

   -Debugger 
       Send the trace output to the debugger (or in Visual Studio) This will
       also select the default trace listener.

   -Expression scriptblock
       The expression to be processed during the trace.
       Enclose the expression in curly braces {}

   -FilePath string
       Send the trace output to specified file. This will also select the
       file trace listener.

   -Force
       Override restrictions that prevent the command from succeeding, apart
       from security settings. e.g. override the read-only attribute on a file.

   -InputObject psobject
       An input to the expression that is being processed during the trace.
       This can be a variable, or an object passed through the pipeline.

   -ListenerOption TraceOptions
       Add optional data to the prefix of each trace message in the output:
            "None,LogicalOperationStack,DateTime,Timestamp,
            ProcessId,ThreadId or Callstack"

   -Option PSTraceSourceOptions
       Type of events to trace, comma separated enclosed in quotes: 
        
       "None, Constructor, Dispose, Finalizer, Method, Property, Delegates,
       Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine,
       Data, Scope, ExecutionFlow, Assert, All".
	  
   -PassThru
       Pass the object created by this cmdlet through the pipeline.

   -PSHost 
       Send the trace output to the PowerShell host.
       This will also select the PSHost trace listener.

   CommonParameters:
       -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
       -OutBuffer -OutVariable.

The following values for PSTraceSourceOptions are combinations of other values:
ExecutionFlow: "Constructor,Dispose,Finalizer,Method,Delegates,Events,Scope"
Data: "Constructor,Dispose,Finalizer,Property,Verbose,WriteLine"
Errors: "Error,Exception"
To specify multiple PSTraceSourceOptions, separate with commas, no spaces, and enclose in quotation marks.

Examples

Start a trace of the "get-process notepad" expression using the defaults: "All" for tracing and "None" for the listener option:

PS C:\> Trace-Command -name metadata,parameterbinding,cmdlet -expression {get -process notepad} -pshost

Trace the actions of the ParameterBinding operations of PowerShell while it processes a Get-Alias expression:

PS C:\> $a = "i*"
PS C:\> trace-command -name parameterbinding {get-alias $input} -pshost -inputobject $a

The -InputObject parameter passes the variable $a to the expression.
In effect, the command being processed during the trace is "get-alias -inputobject $a"

“Follow your instincts. That's where true wisdom manifests itself” ~ Oprah Winfrey

Related:

Set-Tracesource - Trace a PowerShell component


© Copyright SS64.com 1999-2013
Some rights reserved