Set-TraceSource
Konfiguriert, startet und beendet 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 Set-TraceSource
Cmdlet konfiguriert, startet und beendet eine Ablaufverfolgung einer PowerShell-Komponente. Sie können mit ihm angeben, welche Komponenten verfolgt werden sollen und an welches Element die Ausgabe der Ablaufverfolgung gesendet werden soll.
Beispiele
Beispiel 1: Ablaufverfolgung der ParameterBinding-Komponente
Set-TraceSource -Name "ParameterBinding" -Option ExecutionFlow -PSHost -ListenerOption "ProcessId,TimeStamp"
Mit diesem Befehl wird die Ablaufverfolgung für die ParameterBinding-Komponente von PowerShell gestartet. Es verwendet den Name-Parameter , um die Ablaufverfolgungsquelle anzugeben, den Option-Parameter zum Auswählen der ExecutionFlow
Ablaufverfolgungsereignisse und den PSHost-Parameter , um den PowerShell-Hostlistener auszuwählen, der die Ausgabe an die Konsole sendet. Der ListenerOption-Parameter fügt dem Präfix der Ablaufverfolgungsmeldung die ProcessID
Werte und TimeStamp
hinzu.
Beispiel 2: Beenden einer Ablaufverfolgung
Set-TraceSource -Name "ParameterBinding" -RemoveListener "Host"
Dieser Befehl beendet die Ablaufverfolgung der ParameterBinding-Komponente von PowerShell. Es verwendet den Name-Parameter , 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 Benutzer- oder Kernelmodusdebugger oder in Microsoft Visual Studio anzeigen. Dieser Parameter wählt auch den Standard-Ablaufverfolgungslistener aus.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Gibt eine Datei an, an die dieses Cmdlet die Ablaufverfolgungsausgabe sendet. Dieser Parameter wählt auch den Ablaufverfolgungslistener der Datei aus. Wenn Sie diesen Parameter verwenden, um die Ablaufverfolgung zu starten, verwenden Sie den RemoveFileListener-Parameter , um die Ablaufverfolgung zu beenden.
Type: | String |
Aliases: | PSPath, Path |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Gibt an, dass das Cmdlet eine schreibgeschützte Datei überschreibt. Verwenden Sie mit dem FilePath-Parameter .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ListenerOption
Gibt optionale Daten für das Präfix jeder Ablaufverfolgungsmeldung in der Ausgabe an. Zulässige Werte für diesen Parameter:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
None
ist die Standardoption.
Diese Werte werden als flagbasierte Enumeration definiert. Mit diesem Parameter können Sie mehrere Werte kombinieren, um mehrere Flags festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den ListenerOption-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 es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden.
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
Gibt an, welche Komponenten nachverfolgt werden. Geben Sie den Namen der Ablaufverfolgungsquelle jeder Komponente ein. Platzhalter sind zulässig.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Option
Gibt den Typ der Ereignisse an, die nachverfolgt werden. Zulässige Werte für diesen Parameter:
None
Constructor
Dispose
Finalizer
Method
Property
Delegates
Events
Exception
Lock
Error
Errors
Warning
Verbose
WriteLine
Data
Scope
ExecutionFlow
Assert
All
All
ist die Standardoption.
Die folgenden Werte sind Kombinationen von anderen Werten:
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. Mit diesem Parameter können Sie mehrere Werte kombinieren, um mehrere Flags festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den Parameter Option ü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 es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden.
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
Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PSHost
Gibt an, dass dieses Cmdlet die Ablaufverfolgungsausgabe an den PowerShell-Host sendet. Dieser Parameter wählt auch den PSHost-Ablaufverfolgungslistener aus.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RemoveFileListener
Beendet die Ablaufverfolgung durch Entfernen des Datei-Ablaufverfolgungslisteners, der der angegebenen Datei zugeordnet ist. Geben Sie den Pfad und den Dateinamen der Ablaufverfolgungsausgabe-Datei an.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RemoveListener
Beendet die Ablaufverfolgung durch Entfernen des Ablaufverfolgungslisteners.
Verwenden Sie die folgenden Werte mit RemoveListener:
- Um PSHost (Konsole) zu entfernen, geben Sie ein
Host
. - Geben Sie zum Entfernen des Debuggers ein
Debug
. - Um alle Ablaufverfolgungslistener zu entfernen, geben Sie ein
*
.
Verwenden Sie zum Entfernen des Dateiablaufverfolgungslisteners den Parameter RemoveFileListener .
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können eine Zeichenfolge, die einen Namen enthält, an übergeben Set-TraceSource
.
Ausgaben
None or System.Management.Automation.PSTraceSource
Wenn Sie den PassThru-Parameter verwenden, generiert ein System.Management.Automation.PSTraceSource-Objekt, Set-TraceSource
das die Ablaufverfolgungssitzung darstellt. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.
Hinweise
Die Ablaufverfolgung ist eine Methode, die Entwickler zum Debuggen und Optimieren von Programmen verwenden. Bei der Ablaufverfolgung erzeugt das Programm ausführliche Meldungen zu den einzelnen Schritten in der internen Verarbeitung.
Die PowerShell-Ablaufverfolgungs-Cmdlets sind für PowerShell-Entwickler konzipiert, stehen aber allen Benutzern zur Verfügung. 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, eine Datei oder an einen benutzerdefinierten Listener senden, der von der System.Diagnostics.TraceListener-Klasse abgeleitet ist.
Um eine Ablaufverfolgung zu starten, verwenden Sie den Parameter Name , um eine Ablaufverfolgungsquelle anzugeben, und die Parameter FilePath, Debugger oder PSHost , um einen Listener (ein Ziel für die Ausgabe) anzugeben. Verwenden Sie den Options-Parameter , um die Typen von Ereignissen zu bestimmen, die nachverfolgt werden, und den ListenerOption-Parameter , um die Ablaufverfolgungsausgabe zu konfigurieren.
Um die Konfiguration einer Ablaufverfolgung zu ändern, geben Sie einen
Set-TraceSource
Befehl wie zum Starten einer Ablaufverfolgung ein. PowerShell erkennt, dass die Ablaufverfolgungsquelle bereits nachverfolgt wird. Es beendet die Ablaufverfolgung, fügt die neue Konfiguration hinzu und startet die Ablaufverfolgung erneut.Verwenden Sie den Parameter RemoveListener , um eine Ablaufverfolgung zu beenden. Verwenden Sie den RemoveFileListener-Parameter, um eine Ablaufverfolgung zu beenden, die den Dateilistener verwendet (eine Ablaufverfolgung, die mit dem FilePath-Parameter gestartet wurde). Wenn Sie den Listener entfernen, wird die Ablaufverfolgung beendet.
Um zu bestimmen, welche Komponenten verfolgt werden können, verwenden Sie Get-TraceSource. Die Ablaufverfolgungsquellen für jedes Modul werden automatisch geladen, wenn die Komponente verwendet wird, und sie werden in der Ausgabe von
Get-TraceSource
angezeigt.