Dela via


Trace-Command

Konfigurerar och startar en spårning av det angivna uttrycket eller kommandot.

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

Cmdleten Trace-Command konfigurerar och startar en spårning av det angivna uttrycket eller kommandot. Det fungerar som Set-TraceSource, förutom att det endast gäller för det angivna kommandot.

Exempel

Exempel 1: Bearbetning av spårning av metadata, parameterbindning och ett uttryck

Det här exemplet startar en spårning av metadatabearbetning, parameterbindning och skapande och destruktion av Get-Process Notepad uttrycket.

Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost

Den använder parametern Namn för att ange spårningskällorna, uttrycksparametern för att ange kommandot och PSHost-parametern för att skicka utdata till konsolen. Eftersom det inte anger några spårningsalternativ eller lyssnaralternativ använder kommandot standardvärdena:

  • Allt för spårningsalternativen
  • Ingen för lyssnaralternativen

Exempel 2: Spåra åtgärderna för ParameterBinding-åtgärder

Det här exemplet spårar åtgärderna för ParameterBinding-åtgärderna i PowerShell medan det bearbetar ett Get-Alias uttryck som tar indata från pipelinen.

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

I Trace-Commandskickar parametern InputObject ett -objekt till det uttryck som bearbetas under spårningen.

Det första kommandot lagrar strängen i* i variabeln $A . Det andra kommandot använder cmdleten Trace-Command med parameterbindingspårningskällan. PsHost-parametern skickar utdata till konsolen.

Uttrycket som bearbetas är Get-Alias $Input, där variabeln $Input är associerad med parametern InputObject . Parametern InputObject skickar variabeln $A till uttrycket . Kommandot som bearbetas under spårningen är Get-Alias -InputObject $A" or "$A | Get-Aliasi själva verket .

Parametrar

-ArgumentList

Anger parametrarna och parametervärdena för kommandot som spåras. Aliaset för ArgumentList är Args. Den här funktionen är särskilt användbar för felsökning av dynamiska parametrar.

Mer information om beteendet för ArgumentList finns i about_Splatting.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Command

Anger ett kommando som bearbetas under spårningen.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Debugger

Anger att cmdleten skickar spårningsutdata till felsökaren. Du kan visa utdata i valfritt felsökningsprogram för användarläge eller kernelläge eller i Visual Studio. Den här parametern väljer också standardspårningslyssnaren.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expression

Anger det uttryck som bearbetas under spårningen. Omge uttrycket i klammerparenteser ({}).

Type:ScriptBlock
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Anger en fil som cmdleten skickar spårningsutdata till. Den här parametern väljer även filspårningslyssnaren.

Type:String
Aliases:PSPath, Path
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Tvingar kommandot att köras utan att be om användarbekräftelse. Används med FilePath-parametern . Även om du använder force-parametern kan cmdleten inte åsidosätta säkerhetsbegränsningar.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Anger indata för det uttryck som bearbetas under spårningen. Du kan ange en variabel som representerar de indata som uttrycket accepterar eller skicka ett objekt genom pipelinen.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ListenerOption

Anger valfria data till prefixet för varje spårningsmeddelande i utdata. De acceptabla värdena för den här parametern är:

  • Ingen
  • LogicalOperationStack
  • DateTime
  • Timestamp
  • Processid
  • ThreadId
  • Anropsstack

Ingen är standard.

Om du vill ange flera alternativ avgränsar du dem med kommatecken, men utan blanksteg, och omger dem inom citattecken, till exempel "ProcessID,ThreadID".

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

Anger en matris med PowerShell-komponenter som spåras. Ange namnet på spårningskällan för varje komponent. Jokertecken tillåts. Om du vill hitta spårningskällorna på datorn skriver du Get-TraceSource.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Option

Avgör vilken typ av händelser som spåras. De acceptabla värdena för den här parametern är:

  • Ingen
  • Konstruktor
  • Ta bort
  • Slutförare
  • Metod
  • Egenskap
  • Delegeringar
  • Händelser
  • Undantag
  • Låsa
  • Fel
  • Fel
  • Varning
  • Verbose
  • WriteLine
  • Data
  • Omfång
  • ExecutionFlow
  • Assert
  • Alla

Allt är standard.

Följande värden är kombinationer av andra värden:

  • ExecutionFlow: (Konstruktor, Ta bort, Slutför, Metod, Ombud, Händelser och Omfång)
  • Data: (Konstruktor, Kassera, Slutför, Egenskap, Utförlig och WriteLine)
  • Fel: (Fel och undantag).

Om du vill ange flera alternativ avgränsar du dem med kommatecken, men utan blanksteg, och omger dem inom citattecken, till exempel "Konstruktor,Ta bort".

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

Anger att cmdleten skickar spårningsutdata till PowerShell-värden. Den här parametern väljer även PSHost-spårningslyssnaren.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

PSObject

Du kan skicka objekt som representerar indata till uttrycket till Trace-Command.

Utdata

PSObject

Returnerar kommandospårningen i felsökningsströmmen.

Kommentarer

  • Spårning är en metod som utvecklare använder för att felsöka och förfina program. När du spårar genererar programmet detaljerade meddelanden om varje steg i den interna bearbetningen.

  • PowerShell-spårnings-cmdletar är utformade för att hjälpa PowerShell-utvecklare, men de är tillgängliga för alla användare. De gör att du kan övervaka nästan alla aspekter av gränssnittets funktioner.

  • Om du vill hitta de PowerShell-komponenter som är aktiverade för spårning skriver du Get-Help Get-TraceSource.

    En spårningskälla är den del av varje PowerShell-komponent som hanterar spårning och genererar spårningsmeddelanden för komponenten. Om du vill spåra en komponent identifierar du dess spårningskälla.

    En spårningslyssnare tar emot utdata från spårningen och visar den för användaren. Du kan välja att skicka spårningsdata till ett felsökningsprogram i användarläge eller kernelläge, till värden eller konsolen, till en fil eller till en anpassad lyssnare som härletts från klassen System.Diagnostics.TraceListener .

  • När du använder parameteruppsättningen commandSet bearbetar PowerShell kommandot precis som det skulle bearbetas i en pipeline. Till exempel upprepas inte kommandoidentifiering för varje inkommande objekt.

  • Namnen på parametrarna Namn, Uttryck, Alternativ och Kommando är valfria. Om du utelämnar parameternamnen måste de namnlösa parametervärdena visas i följande ordning: Namn, Uttryck, Alternativ eller Namn, Kommando, Alternativ. Om du inkluderar parameternamnen kan parametrarna visas i valfri ordning.