Megosztás a következőn keresztül:


Trace-Command

Konfigurálja és elindítja a megadott kifejezés vagy parancs nyomkövetését.

Syntax

expressionSet (Alapértelmezett)

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

A Trace-Command parancsmag konfigurálja és elindítja a megadott kifejezés vagy parancs nyomkövetését. Úgy működik, mint a Set-TraceSource, azzal a kivételrel, hogy csak a megadott parancsra vonatkozik.

Példák

1. példa: Metaadatok feldolgozásának nyomon követése, paraméterkötés és kifejezés

Ez a példa a metaadatok feldolgozásának, a paraméterkötésnek, valamint a parancsmagok létrehozásának és megsemmisítésének nyomon követését indítja el a Get-Process Notepad kifejezésben.

Trace-Command -Name Metadata, ParameterBinding, Cmdlet -Expression {Get-Process Notepad} -PSHost

A Name paramétert használja a nyomkövetési források megadásához, a parancs megadásához a Expression paramétert, a PSHost paramétert pedig a kimenet konzolra küldéséhez. Mivel nem ad meg nyomkövetési beállításokat vagy figyelőbeállításokat, a parancs az alapértelmezett értékeket használja:

  • Mind a nyomkövetési beállításokhoz
  • Nincs a figyelő beállításainál

2. példa: A ParameterBinding műveletek nyomon követése

Ez a példa a PowerShell ParameterBinding műveleteinek műveleteit követi nyomon, miközben egy Get-Alias kifejezést dolgoz fel, amely bemenetet vesz fel a folyamatból.

$A = "i*"
Trace-Command ParameterBinding {Get-Alias $input} -PSHost -InputObject $A

Az Trace-CommandInputObject paraméter átadja az objektumot a nyomkövetés során feldolgozott kifejezésnek.

Az első parancs a i* változóban tárolja a $A sztringet. A második parancs a Trace-Command parancsmagot használja a ParameterBinding nyomkövetési forrással. A PSHost paraméter elküldi a kimenetet a konzolnak.

A feldolgozandó kifejezés Get-Alias $input, ahol a $input változó az InputObject paraméterhez van társítva. Az InputObject paraméter átadja a $A változót a kifejezésnek. A nyomkövetés során feldolgozott parancs valójában Get-Alias -InputObject $A" or "$A | Get-Alias.

3. példa: Trace ParameterBinding műveletek natív parancsokhoz

A PowerShell 7.3 lehetővé tette a natív parancsok paraméterkötésének nyomon követését. Az alábbi példa bemutatja, hogyan elemzi a PowerShell a natív parancs TestExeparancssori argumentumait.

$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

Paraméterek

-ArgumentList

Megadja a nyomkövetés alatt álló parancs paramétereit és paraméterértékeit. Az ArgumentList aliasa Args. Ez a funkció hasznos a dinamikus paraméterek hibakereséséhez.

Az ArgumentListviselkedésével kapcsolatos további információkért lásd: about_Splatting.

Paramétertulajdonságok

Típus:

Object[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Argumentumok

Paraméterkészletek

commandSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Command

A nyomkövetés során feldolgozott parancsot adja meg.

Ha ezt a paramétert használja, a PowerShell ugyanúgy dolgozza fel a parancsot, mint egy folyamatban. A parancsfelderítés például nem ismétlődik meg minden bejövő objektum esetében.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

commandSet
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Debugger

Azt jelzi, hogy a parancsmag elküldi a nyomkövetési kimenetet a hibakeresőnek. A kimenetet bármely felhasználói vagy kernel módú hibakeresőben vagy a Visual Studióban tekintheti meg. Ez a paraméter az alapértelmezett nyomkövetési figyelőt is kiválasztja.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Expression

A nyomkövetés során feldolgozott kifejezést adja meg. A kifejezést kapcsos zárójelekbe ({}) csatolja.

Paramétertulajdonságok

Típus:ScriptBlock
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

expressionSet
Position:1
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-FilePath

Megadja azt a fájlt, amelybe a parancsmag elküldi a nyomkövetési kimenetet. Ez a paraméter a fájlkövetés-figyelőt is kiválasztja.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath, Útvonal

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Force

Kényszeríti a parancs futtatását anélkül, hogy felhasználói megerősítést kérne. A FilePath paraméterrel használható. A parancsmag még a Force paraméter használatával sem tudja felülbírálni a biztonsági korlátozásokat.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-InputObject

Megadja a nyomkövetés során feldolgozott kifejezés bemenetét. Megadhat egy változót, amely a kifejezés által elfogadott bemenetet jelöli, vagy átadhat egy objektumot a folyamaton keresztül.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-ListenerOption

Opcionális adatokat ad meg a kimenetben lévő nyomkövetési üzenetek előtagjára. A paraméter elfogadható értékei a következők:

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

A None az alapértelmezett.

Ezek az értékek jelölőalapú számbavételként vannak definiálva. Több érték kombinálásával több jelölőt is beállíthat ezzel a paraméterrel. Az értékek átadhatók a ListenerOption paraméternek értéktömbként vagy az értékek vesszővel elválasztott sztringjeként. A parancsmag bináris VAGY művelettel egyesíti az értékeket. Az értékek tömbként való átadása a legegyszerűbb lehetőség, és lehetővé teszi a tabulátorkiegészítés használatát is az értékeken.

Paramétertulajdonságok

Típus:TraceOptions
Alapértelmezett érték:None
Elfogadott értékek:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Name

A nyomon követhető PowerShell-összetevők tömbjét adja meg. Adja meg az egyes összetevők nyomkövetési forrásának nevét. Helyettesítő karakterek használata engedélyezett. A számítógépen található nyomkövetési források megkereséséhez írja be a Get-TraceSource.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Option

Meghatározza a nyomon követhető események típusát. A paraméter elfogadható értékei a következők:

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

A All az alapértelmezett.

A következő értékek más értékek kombinációi:

  • ExecutionFlow: Constructor, Dispose, FinalizerMethod, Delegates, , EventsScope
  • Data: Constructor, Dispose, FinalizerProperty, , VerboseWriteLine
  • Errors: Error, Exception

Ezek az értékek jelölőalapú számbavételként vannak definiálva. Több érték kombinálásával több jelölőt is beállíthat ezzel a paraméterrel. Az értékek átadhatók a Option paraméternek értéktömbként vagy az értékek vesszővel elválasztott sztringjeként. A parancsmag bináris VAGY művelettel egyesíti az értékeket. Az értékek tömbként való átadása a legegyszerűbb lehetőség, és lehetővé teszi a tabulátorkiegészítés használatát is az értékeken.

Paramétertulajdonságok

Típus:PSTraceSourceOptions
Alapértelmezett érték:None
Elfogadott értékek:None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:2
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-PSHost

Azt jelzi, hogy a parancsmag elküldi a nyomkövetési kimenetet a PowerShell-gazdagépnek. Ez a paraméter a PSHost nyomkövetési figyelőt is kiválasztja.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

PSObject

A parancsmag kifejezésének bemenetét jelentő objektumokat csövezheti.

Kimenetek

PSObject

Ez a parancsmag nem ad vissza saját kimenetet. A nyomkövetési parancs kimenetet adhat vissza. Ez a parancsmag a hibakeresési adatfolyamba írja a parancs nyomkövetését.

Jegyzetek

A nyomkövetés olyan módszer, amelyet a fejlesztők a programok hibakeresésére és finomítására használnak. A nyomkövetés során a program részletes üzeneteket hoz létre a belső feldolgozás egyes lépéseiről. A PowerShell nyomkövetési parancsmagjait úgy tervezték, hogy segítsenek a PowerShell-fejlesztőknek, de minden felhasználó számára elérhetők. A rendszerhéj funkcióinak szinte minden aspektusát figyelheti.

A nyomkövetési forrás minden olyan PowerShell-összetevő része, amely kezeli a nyomkövetést, és nyomkövetési üzeneteket hoz létre az összetevőhöz. Egy összetevő nyomon követéséhez azonosítsa annak nyomkövetési forrását.

A Get-TraceSource használatával megtekintheti a nyomkövetéshez engedélyezett PowerShell-összetevők listáját.

A nyomkövetési figyelő megkapja a nyomkövetés kimenetét, és megjeleníti azt a felhasználónak. Dönthet úgy, hogy a nyomkövetési adatokat elküldi egy felhasználói módú vagy kernel módú hibakeresőnek, a gazdagépnek vagy a konzolnak, egy fájlnak vagy egy System.Diagnostics.TraceListener osztályból származó egyéni figyelőnek.