次の方法で共有


Trace-Command

指定された式またはコマンドのトレースを構成し、開始します。

構文

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>]

説明

コマンドレットは Trace-Command 、指定した式またはコマンドのトレースを構成して開始します。 Set-TraceSource と同様に機能しますが、指定されたコマンドにのみ適用される点が異なります。

例 1: メタデータ処理、パラメーター バインド、および式をトレースする

この例では、メタデータ処理、パラメーター バインド、およびコマンドレットの作成と式の破棄のトレースを Get-Process Notepad 開始します。

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

Name パラメーターを使用してトレース ソースを指定し、Expression パラメーターを使用してコマンドを指定し、PSHost パラメーターを使用して出力をコンソールに送信します。 トレース オプションやリスナー オプションは指定されないため、コマンドでは既定値が使用されます。

  • トレース オプションのすべて
  • リスナー オプションの場合はなし

例 2: ParameterBinding 操作のアクションをトレースする

次の使用例は、パイプラインから入力を受け取る式を処理Get-Aliasする際に、PowerShell の ParameterBinding 操作のアクションをトレースします。

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

では Trace-CommandInputObject パラメーターは、トレース中に処理される式にオブジェクトを渡します。

最初のコマンドは、変数に文字列 i*$A 格納します。 2 番目のコマンドでは、 コマンドレットを Trace-Command ParameterBinding トレース ソースと共に使用します。 PSHost パラメーターは、出力をコンソールに送信します。

処理される式は です Get-Alias $Input。ここで、 $Input 変数は InputObject パラメーターに関連付けられます。 InputObject パラメーターは、変数$Aを式に渡します。 実際には、トレース中に処理されるコマンドは です Get-Alias -InputObject $A" or "$A | Get-Alias

パラメーター

-ArgumentList

トレースするコマンドのパラメーターとパラメーターの値を指定します。 ArgumentList のエイリアスは、Args です。 この機能は、動的パラメーターをデバッグする場合に特に便利です。

ArgumentList の動作の詳細については、「about_Splatting」を参照してください。

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

-Command

トレース中に処理するコマンドを指定します。

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

-Debugger

コマンドレットがデバッガーにトレース出力を送信することを示します。 出力はユーザー モードまたはカーネル モードのデバッガーや、Visual Studio で表示することができます。 このパラメーターは、既定のトレース リスナーも選択します。

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

-Expression

トレース中に処理する式を指定します。 式を中かっこ ({}) で囲みます。

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

-FilePath

コマンドレットがトレース出力を送信するファイルを指定します。 このパラメーターは、ファイル トレース リスナーも選択します。

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

-Force

ユーザーに確認せずに、直ちにコマンドを実行します。 FilePath パラメーターと共に使用されます。 Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。

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

-InputObject

トレース中に処理される式への入力を指定します。 式が受け取る入力を表した変数を入力するか、パイプラインを通じてオブジェクトを渡すことができます。

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

-ListenerOption

出力内の各トレース メッセージのプレフィックスに省略可能なデータを指定します。 このパラメーターの有効値は、次のとおりです。

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

None は既定値です。

これらの値は、フラグ ベースの列挙体として定義されます。 複数の値を組み合わせて、このパラメーターを使用して複数のフラグを設定できます。 値は、値の配列として、またはそれらの値のコンマ区切りの文字列として ListenerOption パラメーターに渡すことができます。 コマンドレットは、binary-OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。

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

トレースされる PowerShell コンポーネントの配列を指定します。 各コンポーネントのトレース ソースの名前を入力します。 ワイルドカードを使用できます。 コンピューター上のトレース ソースを見つけるには、「」と入力します Get-TraceSource

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

-Option

トレース対象のイベントの種類を決定します。 このパラメーターの有効値は、次のとおりです。

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

All は既定値です。

次の値はその他の値の組み合わせです。

  • ExecutionFlow: Constructor, Dispose, Finalizer, Method, Delegates, Events, Scope
  • Data: Constructor, Dispose, Finalizer, Property, Verbose, WriteLine
  • Errors: Error, Exception

これらの値は、フラグ ベースの列挙体として定義されます。 複数の値を組み合わせて、このパラメーターを使用して複数のフラグを設定できます。 値は、値の配列として、またはそれらの値のコンマ区切りの文字列として Option パラメーターに渡すことができます。 コマンドレットは、binary-OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。

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

コマンドレットが PowerShell ホストにトレース出力を送信することを示します。 このパラメーターは、PSHost トレース リスナーも選択します。

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

入力

PSObject

式への入力を表すオブジェクトを に Trace-Commandパイプできます。

出力

PSObject

デバッグ ストリーム内にコマンド トレースを返します。

メモ

  • トレースは、開発者がプログラムをデバッグし、調整するために使用するメソッドです。 トレース時に、プログラムは、内部処理の各手順について詳細なメッセージを生成します。

  • PowerShell トレース コマンドレットは、PowerShell 開発者を支援するように設計されていますが、すべてのユーザーが使用できます。 シェルの機能のほとんどすべての側面を監視します。

  • トレースが有効になっている PowerShell コンポーネントを見つけるには、「 」と入力します Get-Help Get-TraceSource

    トレース ソースは、トレースを管理し、コンポーネントのトレース メッセージを生成する各 PowerShell コンポーネントの一部です。 コンポーネントをトレースするには、トレース ソースを特定します。

    トレース リスナーは、トレースの出力を受け取り、ユーザーに表示します。 トレース データは、ユーザー モードまたはカーネル モード デバッガー、ホストまたはコンソール、ファイル、または System.Diagnostics.TraceListener クラスから派生したカスタム リスナーに送信できます。

  • commandSet パラメーター セットを使用すると、PowerShell はパイプラインで処理されるのと同じようにコマンドを処理します。 たとえば、コマンドの検出は、受信した各オブジェクトごとに繰り返されません。

  • NameExpressionOptionCommand の各パラメーターの名前は省略可能です。 パラメーター名を省略した場合、名前のないパラメーター値は 、名前オプション 、または 名前コマンドオプションの順に表示する必要があります。 パラメーター名を指定する場合は、パラメーターの順序に決まりはありません。