Set-TraceSource
Konfiguriert, startet und stoppt eine Ablaufverfolgung von PowerShell-Komponenten.
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>]
Beschreibung
Das cmdlet Set-TraceSource
konfiguriert, startet und stoppt eine Ablaufverfolgung einer PowerShell-Komponente. Sie können sie verwenden, um anzugeben, welche Komponenten nachverfolgt werden und wo die Ablaufverfolgungsausgabe gesendet wird.
Beispiele
Beispiel 1: Verfolgen der ParameterBinding-Komponente
Set-TraceSource -Name "ParameterBinding" -Option ExecutionFlow -PSHost -ListenerOption "ProcessId,TimeStamp"
Dieser Befehl startet die Ablaufverfolgung für die ParameterBinding-Komponente von PowerShell. Er verwendet den Parameter Name, um die Ablaufverfolgungsquelle anzugeben, den parameter Option, um die ExecutionFlow
Ablaufverfolgungsereignisse auszuwählen, und den PSHost Parameter, um den PowerShell-Hostlistener auszuwählen, der die Ausgabe an die Konsole sendet. Der parameter ListenerOption fügt dem Präfix der Ablaufverfolgungsnachricht die werte ProcessID
und TimeStamp
hinzu.
Beispiel 2: Beenden einer Ablaufverfolgung
Set-TraceSource -Name "ParameterBinding" -RemoveListener "Host"
Mit diesem Befehl wird die Ablaufverfolgung der ParameterBinding Komponente von PowerShell beendet. Er verwendet den parameter Name, um die Komponente zu identifizieren, die nachverfolgt wurde, und den RemoveListener Parameter, um den Ablaufverfolgungslistener zu identifizieren.
Parameter
-Debugger
Gibt an, dass das Cmdlet die Ablaufverfolgungsausgabe an den Debugger sendet. Sie können die Ausgabe in jedem Beliebigen Benutzermodus- oder Kernelmodusdebugger oder in Microsoft Visual Studio anzeigen. Dieser Parameter wählt auch den standardmäßigen Ablaufverfolgungslistener aus.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-FilePath
Gibt eine Datei an, an die dieses Cmdlet die Ablaufverfolgungsausgabe sendet. Dieser Parameter wählt auch den Listener für die Dateiablaufverfolgung aus. Wenn Sie diesen Parameter verwenden, um die Ablaufverfolgung zu starten, verwenden Sie den RemoveFileListener Parameter, um die Ablaufverfolgung zu beenden.
Typ: | String |
Aliase: | PSPath |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Gibt an, dass das Cmdlet eine schreibgeschützte Datei überschreibt. Wird mit dem parameter FilePath verwendet.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ListenerOption
Gibt optionale Daten für das Präfix jeder Ablaufverfolgungsnachricht in der Ausgabe an. Die zulässigen Werte für diesen Parameter sind:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
None
ist die Standardeinstellung.
Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können an den ListenerOption Parameter als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines Binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht ihnen auch die Verwendung des Tabstopps für die Werte.
Typ: | TraceOptions |
Zulässige Werte: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt an, welche Komponenten nachverfolgt werden. Geben Sie den Namen der Ablaufverfolgungsquelle jeder Komponente ein. Wildcards sind zulässig.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
-Option
Gibt den Typ der Ereignisse an, die nachverfolgt werden. Die zulässigen Werte für diesen Parameter sind:
None
Constructor
Dispose
Finalizer
Method
Property
Delegates
Events
Exception
Lock
Error
Errors
Warning
Verbose
WriteLine
Data
Scope
ExecutionFlow
Assert
All
None
ist die Standardeinstellung.
Die folgenden Werte sind Kombinationen anderer Werte:
-
ExecutionFlow
:Constructor
,Dispose
,Finalizer
,Method
,Delegates
,Events
,Scope
-
Data
:Constructor
,Dispose
,Finalizer
,Property
,Verbose
,WriteLine
-
Errors
:Error
,Exception
Diese Werte werden als flagbasierte Enumeration definiert. Sie können mehrere Werte kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte an den Option Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines Binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht ihnen auch die Verwendung des Tabstopps für die Werte.
Typ: | PSTraceSourceOptions |
Zulässige Werte: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-PassThru
Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig generiert dieses Cmdlet keine Ausgabe.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PSHost
Gibt an, dass dieses Cmdlet die Ablaufverfolgungsausgabe an den PowerShell-Host sendet. Dieser Parameter wählt auch den PSHost-Ablaufverfolgungslistener aus.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-RemoveFileListener
Beendet die Ablaufverfolgung, indem der Dateiablaufverfolgungslistener entfernt wird, der der angegebenen Datei zugeordnet ist. Geben Sie den Pfad und dateinamen der Ablaufverfolgungsausgabedatei ein.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-RemoveListener
Beendet die Ablaufverfolgung, indem der Ablaufverfolgungslistener entfernt wird.
Verwenden Sie die folgenden Werte mit RemoveListener-:
- Um PSHost (Konsole) zu entfernen, geben Sie
Host
ein. - Um Debugger zu entfernen, geben Sie
Debug
ein. - Um alle Ablaufverfolgungslistener zu entfernen, geben Sie
*
ein.
Verwenden Sie den RemoveFileListener Parameter, um den Dateiablaufverfolgungslistener zu entfernen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können eine Zeichenfolge mit einem Namen an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet ein PSTraceSource--Objekt zurück, das die Ablaufverfolgungssitzung darstellt.
Hinweise
Die Ablaufverfolgung ist eine Methode, die Entwickler zum Debuggen und Verfeinern von Programmen verwenden. Bei der Ablaufverfolgung generiert das Programm detaillierte Meldungen zu den einzelnen Schritten in der internen Verarbeitung.
Die PowerShell-Ablaufverfolgungs-Cmdlets sollen PowerShell-Entwickler unterstützen, aber sie sind für alle Benutzer verfügbar. Sie ermöglichen es Ihnen, nahezu jeden Aspekt der Funktionalität von PowerShell zu überwachen.
Eine Ablaufverfolgungsquelle ist der Teil jeder PowerShell-Komponente, die die Ablaufverfolgung verwaltet und Ablaufverfolgungsmeldungen für die Komponente generiert. Um eine Komponente zu verfolgen, identifizieren Sie die Ablaufverfolgungsquelle.
Ein Ablaufverfolgungslistener empfängt die Ausgabe der Ablaufverfolgung und zeigt sie dem Benutzer an. Sie können die Ablaufverfolgungsdaten an einen Benutzermodus- oder Kernelmodusdebugger, an die Konsole, an eine Datei oder an einen von der System.Diagnostics.TraceListener Klasse abgeleiteten benutzerdefinierten Listener senden.
Verwenden Sie zum Starten einer Ablaufverfolgung den Parameter Name, um eine Ablaufverfolgungsquelle und die FilePath-, Debugger-oder PSHost- parameter anzugeben, um einen Listener (ein Ziel für die Ausgabe) anzugeben. Verwenden Sie den parameter Options, um die Typen von Ereignissen zu bestimmen, die nachverfolgt werden, und den ListenerOption Parameter zum Konfigurieren der Ablaufverfolgungsausgabe.
Um die Konfiguration einer Ablaufverfolgung zu ändern, geben Sie einen
Set-TraceSource
Befehl ein, wie Sie eine Ablaufverfolgung starten möchten. PowerShell erkennt, dass die Ablaufverfolgungsquelle bereits nachverfolgt wird. Die Ablaufverfolgung wird beendet, die neue Konfiguration hinzugefügt und die Ablaufverfolgung gestartet oder neu gestartet.Verwenden Sie zum Beenden einer Ablaufverfolgung den parameter RemoveListener. Um eine Ablaufverfolgung zu beenden, die den Dateilistener verwendet (eine Ablaufverfolgung, die mit dem FilePath Parameter gestartet wurde), verwenden Sie den RemoveFileListener Parameter. Wenn Sie den Listener entfernen, wird die Ablaufverfolgung beendet.
Verwenden Sie Get-TraceSource, um zu bestimmen, welche Komponenten nachverfolgt werden können. Die Ablaufverfolgungsquellen für jedes Modul werden automatisch geladen, wenn die Komponente verwendet wird, und sie werden in der Ausgabe von
Get-TraceSource
angezeigt.