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-Command
、 InputObject パラメーターは、トレース中に処理される式にオブジェクトを渡します。
最初のコマンドは、変数に文字列 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 |
入力
式への入力を表すオブジェクトを に Trace-Command
パイプできます。
出力
デバッグ ストリーム内にコマンド トレースを返します。
メモ
トレースは、開発者がプログラムをデバッグし、調整するために使用するメソッドです。 トレース時に、プログラムは、内部処理の各手順について詳細なメッセージを生成します。
PowerShell トレース コマンドレットは、PowerShell 開発者を支援するように設計されていますが、すべてのユーザーが使用できます。 シェルの機能のほとんどすべての側面を監視します。
トレースが有効になっている PowerShell コンポーネントを見つけるには、「 」と入力します
Get-Help Get-TraceSource
。トレース ソースは、トレースを管理し、コンポーネントのトレース メッセージを生成する各 PowerShell コンポーネントの一部です。 コンポーネントをトレースするには、トレース ソースを特定します。
トレース リスナーは、トレースの出力を受け取り、ユーザーに表示します。 トレース データは、ユーザー モードまたはカーネル モード デバッガー、ホストまたはコンソール、ファイル、または System.Diagnostics.TraceListener クラスから派生したカスタム リスナーに送信できます。
commandSet パラメーター セットを使用すると、PowerShell はパイプラインで処理されるのと同じようにコマンドを処理します。 たとえば、コマンドの検出は、受信した各オブジェクトごとに繰り返されません。
Name、Expression、Option、Command の各パラメーターの名前は省略可能です。 パラメーター名を省略した場合、名前のないパラメーター値は 、名前、 式、 オプション 、または 名前、 コマンド、 オプションの順に表示する必要があります。 パラメーター名を指定する場合は、パラメーターの順序に決まりはありません。