次の方法で共有


Trace-Command

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

構文

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

説明

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

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

PS C:\> Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost

このコマンドは、メタデータ処理、パラメーター バインド、およびコマンドレットの作成と Get-Process Notepad 式の破棄のトレースを開始します。 Name パラメーターを使用してトレース ソースを指定し、Expression パラメーターを使用してコマンドを指定し、PSHost パラメーターを使用して出力をコンソールに送信します。 トレース・オプションやリスナー・オプションを指定しないため、このコマンドでは、トレース・オプションにデフォルト (All、リスナー・オプションに None) が使用されます。

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

PS C:\> $A = "i*"
PS C:\> Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A

これらのコマンドは、パイプラインから入力を受け取る Get-Alias 式を処理する Windows PowerShell の ParameterBinding 操作のアクションをトレースします。

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です。 この機能は、動的パラメータのデバッグに特に役立ちます。

型:Object[]
Aliases:Args
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Command

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

型:String
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Debugger

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Expression

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

型:ScriptBlock
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FilePath

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

型:String
Aliases:PSPath
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Force

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

トレース中に処理される式への入力を指定します。

式が受け入れる入力を表す変数を入力するか、パイプラインを介してオブジェクトを渡すことができます。

型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-ListenerOption

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

  • 無し
  • 論理演算スタック
  • 日付と時間
  • タイムスタンプ
  • ProcessId
  • ThreadId
  • コールスタック

デフォルトは None です。

複数のオプションを指定するには、スペースは含めずにコンマで区切り、"ProcessID,ThreadID" のように引用符で囲みます。

型:TraceOptions
指定可能な値:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Name

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

型:String[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Option

トレースされるイベントの種類を指定します。 このパラメーターに使用できる値は次のとおりです。

  • 無し
  • コンストラクタ
  • 廃棄
  • ファイナライザー
  • メソッド
  • プロパティ
  • デリゲート
  • イベント
  • 例外
  • ロック
  • エラー
  • エラー
  • Warnung
  • 詳細
  • ライトライン
  • データ
  • 範囲
  • 実行フロー
  • 主張する
  • 全て

ALL が既定値です。

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

  • ExecutionFlow: (コンストラクタ、Dispose、ファイナライザ、メソッド、デリゲート、イベント、およびスコープ)
  • データ: (コンストラクタ、Dispose、ファイナライザ、プロパティ、詳細、および書き込みライン)
  • エラー: (エラーと例外)。

複数のオプションを指定するには、オプションをカンマで区切り、スペースは使用せず、引用符で囲みます (例: "Constructor,Dispose")。

型:PSTraceSourceOptions
指定可能な値:None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All
配置:2
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PSHost

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSObject

エクスプレッションへの入力を表すオブジェクトを Trace-Command にパイプ処理できます。

出力

PSObject

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

メモ

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

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

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

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

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

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

  • NameExpressionOptionおよび Command パラメータの名前はオプションです。 パラメータ名を省略する場合、名前のないパラメータ値は、 NameExpressionOption 、または NameCommandOptionの順序で表示する必要があります。 パラメーター名を含める場合、パラメーターは任意の順序で表示できます。