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:
NoneLogicalOperationStackDateTimeTimestampProcessIdThreadIdCallstack
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:
NoneConstructorDisposeFinalizerMethodPropertyDelegatesEventsExceptionLockErrorErrorsWarningVerboseWriteLineDataScopeExecutionFlowAssertAll
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.