Trace-Command
Konfigurálja és elindítja a megadott kifejezés vagy parancs nyomkövetését.
Syntax
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
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 elindítja a metaadatok feldolgozásának, a paraméterkötésnek, valamint a kifejezés parancsmagjainak létrehozását és megsemmisítését Get-Process Notepad
.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost
A Név paraméter használatával adja meg a nyomkövetési forrásokat, a parancs megadásához használt Expression paramétert és a PSHost paramétert 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
olyan kifejezést dolgoz fel, amely bemenetet vesz fel a folyamatból.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
Ebben Trace-Command
az esetben az InputObject paraméter átad egy objektumot a nyomkövetés során feldolgozott kifejezésnek.
Az első parancs a változóban tárolja a sztringet i*
$A
. A második parancs a Trace-Command
ParameterBinding nyomkövetési forrással rendelkező parancsmagot használja. A PSHost paraméter elküldi a kimenetet a konzolnak.
A feldolgozandó kifejezés az Get-Alias $Input
, ahol a $Input
változó az InputObject paraméterhez van társítva. Az InputObject paraméter átadja a változót $A
a kifejezésnek. A nyomkövetés során feldolgozott parancs valójában a Get-Alias -InputObject $A" or "$A | Get-Alias
következő: .
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 TestExe
parancssori 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 Argumentumlista aliasa az Args. Ez a funkció hasznos a dinamikus paraméterek hibakereséséhez.
Az Argumentumlista működésével kapcsolatos további információkért lásd: about_Splatting.
Típus: | Object[] |
Aliasok: | Args |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Expression
A nyomkövetés során feldolgozott kifejezést adja meg. Csatolja a kifejezést kapcsos zárójelekbe ({}
).
Típus: | ScriptBlock |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Aliasok: | PSPath, Path |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | PSObject |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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 formátum.
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.
Típus: | TraceOptions |
Elfogadott értékek: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 következőt Get-TraceSource
:
Típus: | String[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 formátum.
A következő értékek más értékek kombinációi:
ExecutionFlow
:Constructor
,Dispose
,Finalizer
Method
,Delegates
, ,Events
Scope
Data
:Constructor
,Dispose
,Finalizer
Property
, ,Verbose
WriteLine
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 az 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.
Típus: | PSTraceSourceOptions |
Elfogadott értékek: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
Position: | 2 |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
A parancsmag kifejezésének bemenetét jelentő objektumokat csövezheti.
Kimenetek
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 nyomkövetésre engedélyezett PowerShell-összetevők listájának megtekintésére használható Get-TraceSource
.
A nyomkövetési figyelő megkapja a nyomkövetés kimenetét, és megjeleníti azt a felhasználónak. Dönthet úgy, hogy elküldi a nyomkövetési adatokat egy felhasználói módú vagy kernel módú hibakeresőnek, a gazdagépnek vagy a konzolnak, egy fájlnak vagy a System.Diagnostics.TraceListener osztályból származó egyéni figyelőnek.