Trace-Command
Konfiguruje i uruchamia ślad określonego wyrażenia lub polecenia.
Składnia
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>]
Opis
Polecenie Trace-Command
cmdlet konfiguruje i uruchamia ślad określonego wyrażenia lub polecenia.
Działa jak Set-TraceSource, z wyjątkiem tego, że dotyczy tylko określonego polecenia.
Przykłady
Przykład 1. Śledzenie przetwarzania metadanych, powiązania parametrów i wyrażenia
W tym przykładzie rozpoczyna się ślad przetwarzania metadanych, powiązania parametrów i tworzenia i niszczenia Get-Process Notepad
wyrażenia.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost
Używa parametru Name do określenia źródeł śledzenia, parametru Expression w celu określenia polecenia i parametru PSHost w celu wysłania danych wyjściowych do konsoli. Ponieważ nie określa żadnych opcji śledzenia ani opcji odbiornika, polecenie używa wartości domyślnych:
- Wszystkie dla opcji śledzenia
- Brak dla opcji odbiornika
Przykład 2. Śledzenie akcji operacji ParameterBinding
W tym przykładzie są śledzone akcje operacji ParametrBinding programu PowerShell podczas przetwarzania Get-Alias
wyrażenia, które pobiera dane wejściowe z potoku.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
W Trace-Command
pliku parametr InputObject przekazuje obiekt do wyrażenia, które jest przetwarzane podczas śledzenia.
Pierwsze polecenie przechowuje ciąg i*
w zmiennej $A
. Drugie polecenie używa Trace-Command
polecenia cmdlet ze źródłem śledzenia ParameterBinding. Parametr PSHost wysyła dane wyjściowe do konsoli.
Przetwarzane wyrażenie to Get-Alias $Input
, gdzie zmienna $Input
jest skojarzona z parametrem InputObject . Parametr InputObject przekazuje zmienną $A
do wyrażenia. W efekcie polecenie przetwarzane podczas śledzenia to Get-Alias -InputObject $A" or "$A | Get-Alias
.
Parametry
-ArgumentList
Określa parametry i wartości parametrów dla śledzonego polecenia. Alias argumentList to Args. Ta funkcja jest szczególnie przydatna do debugowania parametrów dynamicznych.
Aby uzyskać więcej informacji na temat zachowania argumentlist, zobacz about_Splatting.
Type: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Command
Określa polecenie, które jest przetwarzane podczas śledzenia.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Debugger
Wskazuje, że polecenie cmdlet wysyła dane wyjściowe śledzenia do debugera. Dane wyjściowe można wyświetlić w dowolnym debugerze trybu użytkownika lub w trybie jądra lub w programie Visual Studio. Ten parametr wybiera również domyślny odbiornik śledzenia.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expression
Określa wyrażenie, które jest przetwarzane podczas śledzenia. Ujmij wyrażenie w nawiasach klamrowych ({}
).
Type: | ScriptBlock |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Określa plik, do którego polecenie cmdlet wysyła dane wyjściowe śledzenia. Ten parametr wybiera również odbiornik śledzenia pliku.
Type: | String |
Aliases: | PSPath, Path |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Wymusza uruchomienie polecenia bez monitowania o potwierdzenie użytkownika. Używany z parametrem FilePath . Nawet przy użyciu parametru Force polecenie cmdlet nie może zastąpić ograniczeń zabezpieczeń.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Określa dane wejściowe wyrażenia, które jest przetwarzane podczas śledzenia. Możesz wprowadzić zmienną reprezentującą dane wejściowe, które akceptuje wyrażenie, lub przekazać obiekt przez potok.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ListenerOption
Określa opcjonalne dane do prefiksu każdego komunikatu śledzenia w danych wyjściowych. Dopuszczalne wartości dla tego parametru to:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
Wartość domyślna to None
.
Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru ListenerOption jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binarnej OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulacji wartości.
Type: | TraceOptions |
Accepted values: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Określa tablicę składników programu PowerShell, które są śledzone. Wprowadź nazwę źródła śledzenia każdego składnika. Dozwolone są symbole wieloznaczne. Aby znaleźć źródła śledzenia na komputerze, wpisz Get-TraceSource
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Option
Określa typ śledzonych zdarzeń. Dopuszczalne wartości dla tego parametru to:
None
Constructor
Dispose
Finalizer
Method
Property
Delegates
Events
Exception
Lock
Error
Errors
Warning
Verbose
WriteLine
Data
Scope
ExecutionFlow
Assert
All
Wartość domyślna to All
.
Następujące wartości to kombinacje innych wartości:
ExecutionFlow
:Constructor
,Dispose
,Finalizer
,Method
,Delegates
,Events
,Scope
Data
:Constructor
,Dispose
,Finalizer
,Property
,Verbose
,WriteLine
Errors
:Error
,Exception
Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru Opcji jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binarnej OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulacji wartości.
Type: | PSTraceSourceOptions |
Accepted values: | None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PSHost
Wskazuje, że polecenie cmdlet wysyła dane wyjściowe śledzenia do hosta programu PowerShell. Ten parametr wybiera również odbiornik śledzenia PSHost.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Możesz potokować obiekty reprezentujące dane wejściowe do wyrażenia na Trace-Command
.
Dane wyjściowe
Zwraca ślad polecenia w strumieniu debugowania.
Uwagi
Śledzenie to metoda używana przez deweloperów do debugowania i uściślinia programów. Podczas śledzenia program generuje szczegółowe komunikaty o każdym kroku przetwarzania wewnętrznego.
Polecenia cmdlet śledzenia programu PowerShell zostały zaprojektowane tak, aby ułatwić deweloperom programu PowerShell, ale są one dostępne dla wszystkich użytkowników. Umożliwiają one monitorowanie niemal każdego aspektu funkcjonalności powłoki.
Aby znaleźć składniki programu PowerShell, które są włączone do śledzenia, wpisz
Get-Help Get-TraceSource
.Źródło śledzenia jest częścią każdego składnika programu PowerShell, który zarządza śledzeniem i generuje komunikaty śledzenia dla składnika. Aby śledzić składnik, należy zidentyfikować jego źródło śledzenia.
Odbiornik śledzenia odbiera dane wyjściowe śledzenia i wyświetla go użytkownikowi. Możesz wybrać opcję wysyłania danych śledzenia do debugera trybu użytkownika lub trybu jądra, do hosta lub konsoli, do pliku lub do niestandardowego odbiornika pochodzącego z klasy System.Diagnostics.TraceListener .
W przypadku korzystania z zestawu parametrów commandSet program PowerShell przetwarza polecenie tak samo, jak w potoku. Na przykład odnajdywanie poleceń nie jest powtarzane dla każdego obiektu przychodzącego.
Nazwy parametrów Name, Expression, Option i Command są opcjonalne. Jeśli pominięto nazwy parametrów, wartości parametrów nienazwanych muszą być wyświetlane w następującej kolejności: Nazwa, Wyrażenie, Opcja lub Nazwa, Polecenie, Opcja. Jeśli uwzględnisz nazwy parametrów, parametry mogą być wyświetlane w dowolnej kolejności.