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

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-Commandaz 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-Aliaskö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 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 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, 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 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

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 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.