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 參數會將 ProcessID
和 TimeStamp
值新增至追蹤訊息前置詞。
範例 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 |
輸入
您可以使用管線將包含名稱的字串傳送至 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
輸出中。