Trace-Command
Nakonfiguruje a spustí trasování zadaného výrazu nebo příkazu.
Syntaxe
expressionSet (Výchozí)
Trace-Command
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Expression] <ScriptBlock>
[-InputObject <PSObject>]
[-ListenerOption <TraceOptions>]
[-FilePath <String>]
[-Force]
[-Debugger]
[-PSHost]
[<CommonParameters>]
commandSet
Trace-Command
[-Name] <String[]>
[[-Option] <PSTraceSourceOptions>]
[-Command] <String>
[-InputObject <PSObject>]
[-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 vytváření rutin 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 ParameterBinding operací PowerShellu, zatímco zpracovává výraz Get-Alias, který přebírá vstup z kanálu.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $input} -PSHost -InputObject $A
V Trace-CommandInputObject parametr předá objekt výrazu, který se zpracovává během trasování.
První příkaz uloží řetězec i* do proměnné $A. 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 parametru InputObject. Parametr InputObject předá proměnnou $A výrazu. Příkaz, který se zpracovává během trasování, je 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 parsuje 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 pro ArgumentList je Args. Tato funkce je užitečná pro ladění dynamických parametrů.
Další informace o chování ArgumentListnajdete v části about_Splatting.
Vlastnosti parametru
| Typ: | Object[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Argumenty |
Sady parametrů
commandSet
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
commandSet
| Position: | 1 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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í.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Expression
Určuje výraz, který se zpracovává během trasování. Uzavřete výraz do složených závorek ({}).
Vlastnosti parametru
| Typ: | ScriptBlock |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
expressionSet
| Position: | 1 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-FilePath
Určuje soubor, do kterého rutina odesílá výstup trasování. Tento parametr také vybere naslouchací proces trasování souboru.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSPath, Cesta |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Force
Přinutí příkaz ke spuštění bez výzvy k potvrzení uživatele. Používá se s parametrem FilePath. I když používáte parametr Force, rutina nemůže přepsat omezení zabezpečení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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.
Vlastnosti parametru
| Typ: | PSObject |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-ListenerOption
Určuje volitelná data pro předponu každé zprávy trasování ve výstupu. Přijatelné hodnoty pro tento parametr jsou:
NoneLogicalOperationStackDateTimeTimestampProcessIdThreadIdCallstack
None je výchozí.
Tyto hodnoty jsou definovány jako výčtové hodnoty na bázi příznaků. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat ListenerOption parametr 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 využít automatické doplňování pomocí klávesy Tab pro hodnoty.
Vlastnosti parametru
| Typ: | TraceOptions |
| Default value: | None |
| Přípustné hodnoty: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Name
Určuje pole komponent PowerShellu, které jsou trasovány. Zadejte název zdroje trasování jednotlivých komponent. Jsou povoleny zástupné symboly. Chcete-li najít zdroje trasování v počítači, zadejte Get-TraceSource.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Option
Určuje typ událostí, které jsou trasovány. Přijatelné hodnoty pro tento parametr jsou:
NoneConstructorDisposeFinalizerMethodPropertyDelegatesEventsExceptionLockErrorErrorsWarningVerboseWriteLineDataScopeExecutionFlowAssertAll
All je výchozí.
Následující hodnoty jsou kombinace jiných hodnot:
-
ExecutionFlow:Constructor,Dispose,Finalizer, ,Method,Delegates,EventsScope -
Data:Constructor,Dispose,Finalizer,Property, ,Verbose,WriteLine -
Errors:Error,Exception
Tyto hodnoty jsou definovány jako výčtové hodnoty na bázi příznaků. 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 využít automatické doplňování pomocí klávesy Tab pro hodnoty.
Vlastnosti parametru
| Typ: | PSTraceSourceOptions |
| Default value: | None |
| Přípustné hodnoty: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 2 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-PSHost
Označuje, že rutina odešle výstup trasování hostiteli PowerShellu. Tento parametr také vybere naslouchací proces trasování PSHost.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
PSObject
Objekty, které představují vstup výrazu do této rutiny, můžete pipetovat.
Výstupy
PSObject
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í.
Pomocí Get-TraceSource zobrazíte 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 v uživatelském režimu nebo režimu jádra, do hostitele nebo konzoly, do souboru nebo do vlastního naslouchacího procesu odvozeného z System.Diagnostics.TraceListener třídy.