共用方式為


Set-TraceSource

設定、啟動和停止 PowerShell 元件的追蹤。

Syntax

Set-TraceSource
   [-Name] <String[]>
   [[-Option] <PSTraceSourceOptions>]
   [-ListenerOption <TraceOptions>]
   [-FilePath <String>]
   [-Force]
   [-Debugger]
   [-PSHost]
   [-PassThru]
   [<CommonParameters>]
Set-TraceSource
   [-Name] <String[]>
   [-RemoveListener <String[]>]
   [<CommonParameters>]
Set-TraceSource
   [-Name] <String[]>
   [-RemoveFileListener <String[]>]
   [<CommonParameters>]

Description

Cmdlet 會 Set-TraceSource 設定、啟動和停止 PowerShell 元件的追蹤。 您可以使用它來指定要追蹤的元件和傳送追蹤輸出的位置。

範例

範例 1:追蹤 ParameterBinding 元件

Set-TraceSource -Name "ParameterBinding" -Option ExecutionFlow -PSHost -ListenerOption "ProcessId,TimeStamp"

此命令會開始追蹤 PowerShell 的 ParameterBinding 元件。 它會使用 Name 參數來指定追蹤來源、選取ExecutionFlow追蹤事件的 Option 參數,以及使用 PSHost 參數來選取 PowerShell 主機接聽程式,以將輸出傳送至控制台。 ListenerOption 參數會將 ProcessIDTimeStamp 值新增至追蹤訊息前置詞。

範例 2:停止追蹤

Set-TraceSource -Name "ParameterBinding" -RemoveListener "Host"

此命令會停止追蹤 PowerShell 的 ParameterBinding 元件。 它會使用 Name 參數來識別正在追蹤的元件,並使用 RemoveListener 參數來識別追蹤接聽程式。

參數

-Debugger

指出 Cmdlet 會將追蹤輸出傳送至調試程式。 您可以在任何使用者模式或核心模式偵錯工具或 Microsoft Visual Studio 中檢視輸出。 這個參數也會選取預設的追蹤接聽程式。

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

-FilePath

指定這個 Cmdlet 將追蹤輸出傳送至的檔案。 這個參數也會選取檔案追蹤接聽程式。 如果您使用此參數來啟動追蹤,請使用 RemoveFileListener 參數來停止追蹤。

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

-Force

表示 Cmdlet 會覆寫唯讀檔案。 搭配 FilePath 參數使用。

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

-ListenerOption

指定輸出中每個追蹤訊息前置詞的選擇性數據。 此參數可接受的值為:

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

None 是預設值。

這些值會定義為旗標型列舉。 您可以使用此參數將多個值結合在一起,以設定多個旗標。 這些值可以傳遞至 ListenerOption 參數做為值的陣列,或是這些值的逗號分隔字串。 Cmdlet 會使用二進位 OR 作業來合併值。 將值當做數位傳遞是最簡單的選項,也可讓您在值上使用 Tab 鍵自動完成。

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

指定追蹤哪些元件。 輸入每個元件的追蹤來源名稱。 允許使用萬用字元。

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

-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 參數。 Cmdlet 會使用二進位 OR 作業來合併值。 將值當做數位傳遞是最簡單的選項,也可讓您在值上使用 Tab 鍵自動完成。

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:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

傳回代表您正在使用之項目的物件。 根據預設,此 Cmdlet 不會產生任何輸出。

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

-PSHost

指出此 Cmdlet 會將追蹤輸出傳送至 PowerShell 主機。 這個參數也會選取 PSHost 追蹤接聽程式。

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

-RemoveFileListener

藉由移除與指定檔案相關聯的檔案追蹤接聽程式來停止追蹤。 輸入追蹤輸出檔的路徑和檔案名稱。

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

-RemoveListener

藉由移除追蹤接聽程式來停止追蹤。

搭配 RemoveListener 使用下列值:

  • 若要移除 PSHost (主控台) ,請輸入 Host
  • 若要移除除錯程式, 請輸入 Debug
  • 若要移除所有追蹤接聽程式,請輸入 *

若要移除檔案追蹤接聽程式,請使用 RemoveFileListener 參數。

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

輸入

String

您可以使用管線將包含名稱的字串傳送至 Set-TraceSource

輸出

None or System.Management.Automation.PSTraceSource

當您使用 PassThru 參數時, Set-TraceSource 會產生代表追蹤會話的 System.Management.Automation.PSTraceSource 物件。 否則,此 Cmdlet 不會產生任何輸出。

備註

  • 追蹤是開發人員用來偵錯及改善程式的方法。 當進行追蹤時,程式會產生有關內部處理中每個步驟的詳細訊息。

    PowerShell 追蹤 Cmdlet 的設計目的是協助 PowerShell 開發人員,但可供所有使用者使用。 它們可讓您監視幾乎PowerShell功能的各個層面。

    追蹤來源是管理追蹤併產生元件追蹤訊息之每個 PowerShell 元件的一部分。 如果要追蹤元件,您必須識別其追蹤來源。

    追蹤接聽程式會收到追蹤的輸出,並將其顯示給使用者。 您可以選擇將追蹤數據傳送至使用者模式或內核模式調試程式、控制台、檔案或衍生自 System.Diagnostics.TraceListener 類別的自定義接聽程式。

  • 若要啟動追蹤,請使用 Name 參數來指定追蹤來源和 FilePath調試程式PSHost 參數,以指定輸出) 目的地 (接聽程式。 使用 Options 參數來判斷追蹤的事件類型,以及 ListenerOption 參數來設定追蹤輸出。

  • 若要變更追蹤的組態,請輸入 Set-TraceSource 命令,就像啟動追蹤一樣。 PowerShell 會辨識追蹤來源已經追蹤。 它會停止追蹤、新增設定,並啟動或重新啟動追蹤。

  • 若要停止追蹤,請使用 RemoveListener 參數。 若要停止使用檔案接聽程式 (使用 FilePath 參數啟動的追蹤) ,請使用 RemoveFileListener 參數。 當您移除接聽程式,追蹤會隨即停止。

  • 如果要判斷可追蹤的元件,請使用 Get-TraceSource。 當元件正在使用時,每個模組的追蹤來源都會自動載入,而且它們會出現在的 Get-TraceSource輸出中。