Konfiguriert und startet eine Ablaufverfolgung des angegebenen Ausdrucks oder Befehls.

Syntax

Trace-Command [-Command] <string> [-ArgumentList <Object[]>] [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Trace-Command [-Expression] <scriptblock> [-Name] <string[]> [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PSHost] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "Trace-Command" wird eine Ablaufverfolgung des angegebenen Ausdrucks oder Befehls konfiguriert und gestartet. Seine Funktionsweise ähnelt der Funktionsweise von Set-TraceSource, jedoch wird es nur auf den angegebenen Befehl angewendet.

Parameter

-ArgumentList <Object[]>

Gibt die Parameter und Parameterwerte für den Befehl an, für den eine Ablaufverfolgung ausgeführt wird. Der Alias für ArgumentList lautet "Args". Dieses Feature eignet sich besonders zum Debuggen von dynamischen Parametern.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Command <string>

Gibt einen Befehl an, der während der Ablaufverfolgung verarbeitet wird.

Erforderlich?

true

Position?

2

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Debugger

Sendet die Ablaufverfolgungsausgabe an den Debugger. Sie können die Ausgabe in einem beliebigen Debugger im Benutzer- oder Kernelmodus oder in Visual Studio anzeigen. Mit diesem Parameter wird auch der Standard-Ablaufverfolgungslistener ausgewählt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Expression <scriptblock>

Gibt den Ausdruck an, der während der Ablaufverfolgung verarbeitet wird. Schließen Sie den Ausdruck in geschweifte Klammern ({}) ein.

Erforderlich?

true

Position?

2

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-FilePath <string>

Sendet die Ablaufverfolgungsausgabe an die angegebene Datei. Mit diesem Parameter wird auch der Datei-Ablaufverfolgungslistener ausgewählt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Force

Ermöglicht es dem Cmdlet, Ablaufverfolgungsinformationen an eine schreibgeschützte Datei anzufügen. Wird mit dem FilePath-Parameter verwendet. Auch bei Verwendung des Force-Parameters kann das Cmdlet keine Sicherheitseinschränkungen außer Kraft setzen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-InputObject <psobject>

Stellt die Eingabe für den Ausdruck bereit, der während der Ablaufverfolgung verarbeitet wird.

Sie können eine Variable eingeben, die die vom Ausdruck akzeptierte Eingabe darstellt, oder ein Objekt über die Pipeline übergeben.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-ListenerOption <TraceOptions>

Fügt dem Präfix jeder Ablaufverfolgungsmeldung in der Ausgabe optionale Daten hinzu. Die gültigen Werte sind "None", "LogicalOperationStack", "DateTime", "Timestamp", "ProcessId", "ThreadId" und "Callstack". Der Standardwert ist "None".

Um mehrere Optionen anzugeben, trennen Sie diese durch Kommas, doch ohne Leerzeichen, und schließen Sie sie in Anführungszeichen ein. Beispiel: "ProcessID,ThreadID".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Name <string[]>

Bestimmt, für welche Komponenten von Windows PowerShell eine Ablaufverfolgung ausgeführt wird. Geben Sie den Namen der Ablaufverfolgungsquelle für jede Komponente ein. Platzhalter sind zulässig. Um die Ablaufverfolgungsquellen auf dem Computer zu suchen, geben Sie "Get-TraceSource" ein.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Option <PSTraceSourceOptions>

Bestimmt den Typ der Ereignisse, für die eine Ablaufverfolgung ausgeführt wird.

Die gültigen Werte lauten: "None", "Constructor", "Dispose", "Finalizer", "Method", "Property", "Delegates", "Events", "Exception", "Lock", "Error", "Errors", "Warning", "Verbose", "WriteLine", "Data", "Scope", "ExecutionFlow", "Assert" und "All". Der Standardwert ist "All".

Die folgenden Werte bestehen aus mehreren anderen Werten:

– ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events und Scope)

– Data: (Constructor, Dispose, Finalizer, Property, Verbose und WriteLine)

– Errors: (Error und Exception)

Um mehrere Optionen anzugeben, trennen Sie diese durch Kommas, doch ohne Leerzeichen, und schließen Sie sie in Anführungszeichen ein. Beispiel: "Constructor,Dispose".

Erforderlich?

false

Position?

3

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-PSHost

Sendet die Ablaufverfolgungsausgabe an den Windows PowerShell-Host. Mit diesem Parameter wird auch der PSHost-Ablaufverfolgungslistener ausgewählt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.Management.Automation.PSObject

Sie können Objekte, die Eingaben für den Ausdruck darstellen, mit der Pipeline an Trace-Command übergeben.

Ausgaben

System.Management.Automation.PSObject

Gibt die Befehlsablaufverfolgung im Debugstream zurück.

Hinweise

Die Ablaufverfolgung wird von Entwicklern zum Debuggen und Optimieren von Programmen verwendet. Bei der Ablaufverfolgung generiert das Programm ausführliche Meldungen über die einzelnen Schritte während der internen Verarbeitung.

Die Ablaufverfolgungs-Cmdlets von Windows PowerShell wurden für die Unterstützung von Windows PowerShell-Entwicklern entworfen, sind jedoch für alle Benutzer verfügbar. Mit ihnen können Sie nahezu jeden Aspekt der Shellfunktionalität überwachen.

Um die Komponenten von Windows PowerShell zu suchen, für die eine Ablaufverfolgung aktiviert ist, geben Sie "Get-Help Get-TraceSource" ein.

Eine Ablaufverfolgungsquelle ist der Teil jeder Windows PowerShell-Komponente, die die Ablaufverfolgung verwaltet und Ablaufverfolgungsmeldungen für die Komponente generiert. Um eine Ablaufverfolgung für eine Komponente auszuführen, geben Sie ihre Ablaufverfolgungsquelle an.

Ein Ablaufverfolgungslistener empfängt die Ausgabe der Ablaufverfolgung und zeigt sie für den Benutzer an. Sie können die Ablaufverfolgungsdaten an einen Debugger im Benutzermodus oder Kernelmodus, an den Host oder die Konsole, an eine Datei oder an einen benutzerdefinierten Listener senden, der von der System.Diagnostics.TraceListener-Klasse abgeleitet wird.

Wenn Sie den Command-Parametersatz verwenden, verarbeitet Windows PowerShell den Befehl wie bei der Verarbeitung in der Pipeline. Beispielsweise wird die Befehlserkennung nicht für jedes eingehende Objekt wiederholt.

Die Namen der Parameter "Name", "Expression", "Option" und "Command" sind optional. Wenn Sie die Parameternamen nicht angeben, müssen die unbenannten Parameterwerte in der folgenden Reihenfolge angezeigt werden: "Name", "Expression", "Option" oder "Name", "Command", "-Option". Wenn Sie die Parameternamen angeben, können die Parameter in beliebiger Reihenfolge angegeben werden.

Beispiel 1

C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost

Beschreibung
-----------
Mit diesem Befehl wird eine Ablaufverfolgung der Metadatenverarbeitung, Parameterbindung und Cmdlet-Erstellung sowie der Zerstörung des Ausdrucks "get-process notepad" gestartet. Mit dem Name-Parameter werden die Ablaufverfolgungsquellen angegeben, mit dem Expression-Parameter wird der Befehl angegeben, und mit dem PSHost-Parameter wird die Ausgabe an die Konsole gesendet. Weil in dem Befehl keine Ablaufverfolgungs- oder Listeneroptionen angegeben werden, werden die Standardwerte "All" für die Ablaufverfolgungsoptionen und "None" für die Listeneroptionen verwendet.






Beispiel 2

C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:\test\debug.txt

Beschreibung
-----------
Mit diesem Befehl wird eine Ablaufverfolgung des Befehlsprozessors und Pipelineprozessors während der Verarbeitung des Befehls "get-alias cd" gestartet. 

Mit dem Name-Parameter werden die Ablaufverfolgungsquellen, mit dem Command-Parameter der Befehl, mit dem ArgumentList-Parameter die Parameter des Befehls "Get-Alias" sowie mit dem Option-Parameter die Ablaufverfolgungsoptionen und mit dem ListenerOption-Parameter die Felder im Präfix der Ablaufverfolgungsmeldung angegeben. Der FilePath-Parameter sendet die Ausgabe an die Datei "C:\Test\Debug.txt".






Beispiel 3

C:\PS>$a = "i*"

C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobject $a

Beschreibung
-----------
Mit diesen Befehlen wird eine Ablaufverfolgung der Aktionen der ParameterBinding-Vorgänge von Windows PowerShell ausgeführt, während ein Ausdruck mit dem Befehl "Get-Alias" verarbeitet wird, der Eingaben aus der Pipeline akzeptiert.

In Trace-Command übergibt der InputObject-Parameter ein Objekt an den Ausdruck, der während der Ablaufverfolgung verarbeitet wird. 

Im ersten Befehl wird die Zeichenfolge "i*" in der Variablen "$a" gespeichert. Im zweiten Befehl wird das Cmdlet "Trace-Command" für die Ablaufverfolgungsquelle "ParameterBinding" verwendet. Der PSHost-Parameter sendet die Ausgabe an die Konsole. 

Der verarbeitete Ausdruck lautet "get-alias $input", wobei dem InputObject-Parameter die Variable "$input" zugeordnet ist. Der InputObject-Parameter übergibt die Variable "$a" an den Ausdruck. Der während der Ablaufverfolgung verarbeitete Ausdruck lautet somit "get-alias -inputobject $a" oder "$a | get-alias".






Siehe auch




Inhaltsverzeichnis