Sdílet prostřednictvím


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:

  • None
  • LogicalOperationStack
  • DateTime
  • Timestamp
  • ProcessId
  • ThreadId
  • Callstack

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:

  • None
  • Constructor
  • Dispose
  • Finalizer
  • Method
  • Property
  • Delegates
  • Events
  • Exception
  • Lock
  • Error
  • Errors
  • Warning
  • Verbose
  • WriteLine
  • Data
  • Scope
  • ExecutionFlow
  • Assert
  • All

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.