Trace-Command
Nakonfiguruje a spustí trasování zadaného výrazu nebo příkazu.
Syntaxe
Trace-Command
[-InputObject <PSObject>]
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Expression] <ScriptBlock>
[-ListenerOption <TraceOptions>]
[-FilePath <String>]
[-Force]
[-Debugger]
[-PSHost]
[<CommonParameters>]
Trace-Command
[-InputObject <PSObject>]
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Command] <String>
[-ArgumentList <Object[]>]
[-ListenerOption <TraceOptions>]
[-FilePath <String>]
[-Force]
[-Debugger]
[-PSHost]
[<CommonParameters>]
Description
Rutina Trace-Command
nakonfiguruje a spustí trasování zadaného výrazu nebo příkazu.
Funguje jako Set-TraceSource s tím rozdílem, že se vztahuje pouze na zadaný příkaz.
Příklady
Příklad 1: Trasování zpracování metadat, vazby parametrů a výrazu
Tento příklad spustí trasování zpracování metadat, vazby parametrů a vytvoření a zničení výrazu Get-Process Notepad
.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost
Pomocí parametru Name určuje zdroje trasování, parametr Expression k zadání příkazu a parametr PSHost k odeslání výstupu do konzoly. Protože nezadá žádné možnosti trasování ani možnosti naslouchacího procesu, použije příkaz výchozí hodnoty:
- Vše pro možnosti trasování
- Žádné možnosti naslouchacího procesu
Příklad 2: Trasování akcí operací ParameterBinding
Tento příklad sleduje akce operací ParameterBinding PowerShellu, zatímco zpracovává Get-Alias
výraz, který přebírá vstup z kanálu.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
V Trace-Command
, InputObject parametr předá objekt výrazu, který se zpracovává během trasování.
První příkaz uloží řetězec i*
do $A
proměnné. Druhý příkaz používá rutinu Trace-Command
se zdrojem trasování ParameterBinding. Parametr PSHost odešle výstup do konzoly.
Zpracovávaný výraz je Get-Alias $Input
, kde $Input
proměnná je přidružena k inputObject parametru. Parametr InputObject předá proměnnou $A
výrazu. V důsledku toho je příkaz zpracovávaný během trasování Get-Alias -InputObject $A" or "$A | Get-Alias
.
Příklad 3: Operace trasování parametruBinding pro nativní příkazy
PowerShell 7.3 přidal možnost trasování vazby parametrů pro nativní příkazy. Následující příklad ukazuje, jak PowerShell analyzuje argumenty příkazového řádku pro nativní příkaz TestExe
.
$a = 'a" "b'
Trace-Command -PSHOST -Name ParameterBinding { TestExe -echoargs $a 'c" "d' e" "f }
DEBUG: 2023-02-27 14:20:45.3975 ParameterBinding Information: 0 : BIND NAMED native application line args [C:\Public\Toolbox\TestExe\testexe.exe]
DEBUG: 2023-02-27 14:20:45.3978 ParameterBinding Information: 0 : BIND cmd line arg [-echoargs] to position [0]
DEBUG: 2023-02-27 14:20:45.3979 ParameterBinding Information: 0 : BIND cmd line arg [a" "b] to position [1]
DEBUG: 2023-02-27 14:20:45.3980 ParameterBinding Information: 0 : BIND cmd line arg [c" "d] to position [2]
DEBUG: 2023-02-27 14:20:45.3982 ParameterBinding Information: 0 : BIND cmd line arg [e f] to position [3]
DEBUG: 2023-02-27 14:20:47.6092 ParameterBinding Information: 0 : CALLING BeginProcessing
Parametry
-ArgumentList
Určuje parametry a hodnoty parametrů pro trasovaný příkaz. Alias argumentu ArgumentList je Args. Tato funkce je užitečná pro ladění dynamických parametrů.
Další informace o chování ArgumentList naleznete v tématu about_Splatting.
Typ: | Object[] |
Aliasy: | Args |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Command
Určuje příkaz, který se zpracovává během trasování.
Když použijete tento parametr, PowerShell zpracuje příkaz stejně jako by byl zpracován v kanálu. Například zjišťování příkazů se u každého příchozího objektu neopakuje.
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Debugger
Označuje, že rutina odešle výstup trasování do ladicího programu. Výstup můžete zobrazit v libovolném ladicím programu pro režim uživatele nebo v režimu jádra nebo v sadě Visual Studio. Tento parametr také vybere výchozí naslouchací proces trasování.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Expression
Určuje výraz, který se zpracovává během trasování. Uzavřete výraz do složených závorek ({}
).
Typ: | ScriptBlock |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-FilePath
Určuje soubor, do kterého rutina odesílá výstup trasování. Tento parametr také vybere naslouchací proces trasování souboru.
Typ: | String |
Aliasy: | PSPath, Path |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Force
Vynutí spuštění příkazu bez výzvy k potvrzení uživatele. Používá se s parametrem FilePath . I pomocí parametru Force nemůže rutina přepsat omezení zabezpečení.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje vstup do výrazu, který se zpracovává během trasování. Můžete zadat proměnnou, která představuje vstup, který výraz přijímá, nebo předat objekt přes kanál.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-ListenerOption
Určuje volitelná data pro předponu každé zprávy trasování ve výstupu. Tento parametr přijímá tyto hodnoty:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
None
je výchozí možnost.
Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat do parametru ListenerOption jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru.
Typ: | TraceOptions |
Přípustné hodnoty: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Name
Určuje pole komponent PowerShellu, které jsou trasovány. Zadejte název zdroje trasování jednotlivých komponent. Jsou povoleny zástupné cardy. Chcete-li najít zdroje trasování v počítači, zadejte Get-TraceSource
.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Option
Určuje typ událostí, které jsou trasovány. Tento parametr přijímá tyto hodnoty:
None
Constructor
Dispose
Finalizer
Method
Property
Delegates
Events
Exception
Lock
Error
Errors
Warning
Verbose
WriteLine
Data
Scope
ExecutionFlow
Assert
All
All
je výchozí možnost.
Následující hodnoty jsou kombinace jiných hodnot:
ExecutionFlow
:Constructor
,Dispose
,Finalizer
, ,Method
,Delegates
,Events
Scope
Data
:Constructor
,Dispose
,Finalizer
,Property
, ,Verbose
,WriteLine
Errors
:Error
,Exception
Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru Option jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru.
Typ: | PSTraceSourceOptions |
Přípustné hodnoty: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
Position: | 2 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PSHost
Označuje, že rutina odešle výstup trasování hostiteli PowerShellu. Tento parametr také vybere naslouchací proces trasování PSHost.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Objekty, které představují vstup výrazu do této rutiny, můžete pipetovat.
Výstupy
Tato rutina nevrací žádný vlastní výstup. Trasovaný příkaz může vrátit výstup. Tato rutina zapíše trasování příkazů do streamu ladění.
Poznámky
Trasování je metoda, kterou vývojáři používají k ladění a upřesňování programů. Při trasování program generuje podrobné zprávy o jednotlivých krocích jeho interního zpracování. Rutiny trasování PowerShellu jsou navržené tak, aby pomohly vývojářům PowerShellu, ale jsou dostupné všem uživatelům. Umožňují vám monitorovat téměř všechny aspekty funkčnosti prostředí.
Zdroj trasování je součástí každé komponenty PowerShellu, která spravuje trasování a generuje trasovací zprávy pro danou komponentu. Pokud chcete trasovat komponentu, identifikujete její zdroj trasování.
Umožňuje Get-TraceSource
zobrazit seznam komponent PowerShellu, které jsou povolené pro trasování.
Naslouchací proces trasování obdrží výstup trasování a zobrazí ho uživateli. Můžete se rozhodnout odeslat data trasování do ladicího programu uživatelského režimu nebo režimu jádra, do hostitele nebo konzoly, do souboru nebo do vlastního naslouchacího procesu odvozeného z třídy System.Diagnostics.TraceListener .