指定された式またはコマンドのトレースを構成し、開始します。
構文
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>]
説明
Trace-Command コマンドレットは、指定された式またはコマンドのトレースを構成し、開始します。指定されたコマンドにのみ適用されることを除き、Set-TraceSource と同じように動作します。
パラメーター
-ArgumentList <Object[]>
トレースされるコマンドのパラメーターおよびパラメーター値を指定します。ArgumentList のエイリアスは Args です。この機能は、動的パラメーターをデバッグする場合に特に便利です。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Command <string>
トレース中に処理するコマンドを指定します。
必須 |
true |
位置 |
2 |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Debugger
トレースをデバッガーに出力します。出力は、任意のユーザー モードまたはカーネル モード デバッガー、あるいは Visual Studio で表示できます。このパラメーターによって、既定のトレース リスナーも選択したことになります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Expression <scriptblock>
トレース中に処理する式を指定します。式は波かっこ ({}) で囲みます。
必須 |
true |
位置 |
2 |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-FilePath <string>
指定されたファイルにトレースを出力します。このパラメーターによって、ファイル トレース リスナーも選択されます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Force
コマンドレットが読み取り専用ファイルにトレース出力を追加するのを許可します。FilePath パラメーターと共に使用します。Force パラメーターを使用しても、コマンドレットはセキュリティ制限を上書きできません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-InputObject <psobject>
トレース中に処理される式に入力を渡します。
式が受け入れる入力を表す変数を入力するか、パイプラインを介してオブジェクトを渡します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByValue) |
ワイルドカード文字を許可する |
false |
-ListenerOption <TraceOptions>
出力される各トレース メッセージのプレフィックスにオプション データを追加します。有効な値は、None、LogicalOperationStack、DateTime、Timestamp、ProcessId、ThreadId、および Callstack です。既定値は "None" です。
複数のオプションを指定するには、スペースを入れずにコンマで各オプションを区切り、"ProcessID,ThreadID" のように二重引用符で囲みます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Name <string[]>
トレースする Windows PowerShell コンポーネントを決定します。各コンポーネントのトレース ソースの名前を入力します。ワイルドカードを使用できます。コンピューター上のトレース ソースを見つけるには、「Get-TraceSource」と入力します。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Option <PSTraceSourceOptions>
トレース対象のイベントの種類を決定します。
有効な値は、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)
複数のオプションを指定するには、各オプションをスペースを入れずにコンマで区切り、"Constructor,Dispose" のように二重引用符で囲みます。
必須 |
false |
位置 |
3 |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-PSHost
トレースを Windows PowerShell ホストに出力します。このパラメーターによって、PSHost トレース リスナーも選択されます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.Management.Automation.PSObject 式への入力を表すオブジェクトを Trace-Command に対してパイプ処理できます。 |
出力 |
System.Management.Automation.PSObject コマンド トレースをデバッグ ストリームを使用して返します。 |
注
トレースは、開発者がプログラムをデバッグおよび改良するときに使用する方法です。トレースを行うと、プログラムは内部処理の各手順について詳細なメッセージを生成します。
Windows PowerShell のトレース用コマンドレットは、Windows PowerShell 開発者向けに設計されていますが、どのユーザーでも使用できます。トレース用コマンドレットを使用すると、シェルの機能のほぼすべての部分を監視できます。
トレースが有効な Windows PowerShell コンポーネントを見つけるには、「Get-Help Get-TraceSource」と入力します。
"トレース ソース" は各 Windows PowerShell コンポーネントの一部としてトレースを管理し、コンポーネントのトレース メッセージを生成します。コンポーネントをトレースするには、そのトレース ソースを特定します。
"トレース リスナー" は、トレースの出力を受け取り、ユーザーに表示します。トレース データの送り先として、ユーザー モードまたはカーネル モードのデバッガー、ホストまたはコンソール、ファイルのほか、System.Diagnostics.TraceListener クラスから派生したカスタム リスナーのいずれかを選択できます。
Command パラメーター セットを使用すると、Windows PowerShell はコマンドをパイプライン内で処理される場合と同じように処理します。たとえば、オブジェクトを受け取るたびにコマンド探索が繰り返されることはありません。
Name、Expression、Option、および Command パラメーターの名前はオプションです。パラメーター名を省略する場合は、名前のないパラメーター値を Name、Expression、Option または Name、Command、-Option の順序で指定する必要があります。パラメーター名を指定する場合は、パラメーターの順序に決まりはありません。
例 1
C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost 説明 ----------- このコマンドは "get-process notepad" という式に対するメタデータ処理、パラメーター バインド、コマンドレットの作成および破壊のトレースを開始します。Name パラメーターを使用してトレース ソースを指定し、Expression パラメーターを使用してコマンドを指定し、PSHost パラメーターを使用して出力をコンソールに送ります。トレース オプションもリスナー オプションも指定されていないため、トレース オプションには "All"、リスナー オプションには "None" という、それぞれの既定値が使用されます。
例 2
C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt 説明 ----------- このコマンドは、"get-alias cd" コマンドの処理中にコマンド プロセッサとパイプライン プロセッサのトレースを開始します。 このコマンドは、Name パラメーターにトレース ソースを指定し、Command パラメーターにコマンドを指定し、ArgumentList パラメーターに Get-Alias コマンドのパラメーターを指定し、Option パラメーターにトレース オプションを指定し、ListenerOption パラメーターにはトレース メッセージ プレフィックスのフィールドを指定しています。FilePath パラメーターを使用して、C:\Test\Debug.txt ファイルに出力を送っています。
例 3
C:\PS>$a = "i*" C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a 説明 ----------- これらのコマンドは、パイプラインから入力を受け取る Get-Alias の式を処理する間に、Windows PowerShell の ParameterBinding 操作のアクションをトレースします。 Trace-Command 内の InputObject パラメーターによって、トレース中に処理される式にオブジェクトが渡されます。 最初のコマンドは、"i*" という文字列を $a 変数に保存します。2 番目のコマンドは、ParameterBinding トレース ソースと Trace-Command コマンドレットを使用しています。PSHost パラメーターを使用して、コンソールに出力を送っています。 処理される式は "get-alias $input" です。ここで、$input 変数は InputObject パラメーターと関連付けられています。InputObject パラメーターを使用して、変数 $a を式に渡しています。実質的に、トレース中に処理されるコマンドは、"get-alias -inputobject $a" または "$a | get-alias" となります。
関連項目