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 參數來指定追蹤來源、選取追蹤事件的 Option 參數,以及 PSHost 參數來選取 ExecutionFlow PowerShell 主機接聽程式,以將輸出傳送至控制台。 ListenerOption 參數會將 TimeStamp 值新增ProcessID至追蹤訊息前置詞。

範例 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 是預設值。

下列值是其他值的組合:

  • ExecutionFlowConstructorDispose、、MethodFinalizerDelegates、、、 EventsScope
  • DataConstructor、、DisposePropertyFinalizer、、VerboseWriteLine
  • ErrorsErrorException

這些值會定義為旗標型列舉。 您可以將多個值結合在一起,以使用此參數來設定多個旗標。 這些值可以傳遞至 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

您可以使用管線將包含名稱的字串傳送至此 Cmdlet。

輸出

None

根據預設,此 Cmdlet 不會傳回任何輸出。

PSTraceSource

當您使用 PassThru 參數時,這個 Cmdlet 會 傳回代表追蹤會話的 PSTraceSource 物件。

備註

  • 追蹤是開發人員用來偵錯和精簡程式的方法。 追蹤時,程式會產生其內部處理中每個步驟的詳細訊息。

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

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

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

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

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

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

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