Trace-Command
Belirtilen ifadenin veya komutun bir izlemesini yapılandırıp başlatır.
Sözdizimi
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
Trace-Command
cmdlet'i, belirtilen ifadenin veya komutun bir izlemesini yapılandırıp başlatır.
Yalnızca belirtilen komut için geçerli olması dışında Set-TraceSource gibi çalışır.
Örnekler
Örnek 1: Meta veri işlemeyi, parametre bağlamayı ve ifadeyi izleme
Bu örnek meta veri işleme, parametre bağlama ve cmdlet oluşturma ve Get-Process Notepad
ifadesinin yok edilmesine ilişkin bir izleme başlatır.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHost
İzleme kaynaklarını belirtmek için Name parametresini, komutu belirtmek için İfade parametresini ve çıkışı konsola göndermek için PSHost parametresini kullanır. herhangi bir izleme seçeneği veya dinleyici seçeneği belirtmediğinden, komut varsayılan değerleri kullanır:
- İzleme seçenekleri için tümü
- Dinleyici seçenekleri için yok
Örnek 2: ParameterBinding işlemlerinin eylemlerini izleme
Bu örnek, işlem hattından giriş alan Get-Alias
bir ifade işlerken PowerShell'in ParameterBinding işlemlerinin eylemlerini izler.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
Trace-Command
InputObject parametresi, izleme sırasında işlenen ifadeye bir nesne geçirir.
İlk komut, i*
dizesini $A
değişkeninde depolar. İkinci komut, ParameterBinding izleme kaynağıyla Trace-Command
cmdlet'ini kullanır.
PSHost parametresi çıkışı konsola gönderir.
İşlenen ifade, $Input
değişkeninin InputObject parametresiyle ilişkilendirildiği Get-Alias $Input
.
InputObject parametresi $A
değişkenini ifadeye geçirir. Sonuç olarak, izleme sırasında işlenen komut Get-Alias -InputObject $A" or "$A | Get-Alias
.
Örnek 3: Yerel komutlar için Trace ParameterBinding işlemleri
PowerShell 7.3, yerel komutlar için parametre bağlamasını izleme özelliğini ekledi. Aşağıdaki örnekte PowerShell'in TestExe
yerel komut için komut satırı bağımsız değişkenlerini nasıl ayrıştırma yöntemi gösterilmektedir.
$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
Parametreler
-ArgumentList
İzlenen komut için parametreleri ve parametre değerlerini belirtir. ArgumentList diğer adı Args . Bu özellik, dinamik parametrelerin hatalarını ayıklamak için kullanışlıdır.
ArgumentListdavranışı hakkında daha fazla bilgi için bkz. about_Splatting.
Tür: | Object[] |
Diğer adlar: | Args |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Command
İzleme sırasında işlenen bir komutu belirtir.
Bu parametreyi kullandığınızda, PowerShell komutu bir işlem hattında işlendiği gibi işler. Örneğin, gelen her nesne için komut bulma işlemi yinelenemez.
Tür: | String |
Position: | 1 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Debugger
Cmdlet'in izleme çıkışını hata ayıklayıcıya gönderdiğini gösterir. Çıkışı herhangi bir kullanıcı modunda veya çekirdek modu hata ayıklayıcısında veya Visual Studio'da görüntüleyebilirsiniz. Bu parametre ayrıca varsayılan izleme dinleyicisini seçer.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Expression
İzleme sırasında işlenen ifadeyi belirtir. İfadeyi ayraç içine alın ({}
).
Tür: | ScriptBlock |
Position: | 1 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-FilePath
cmdlet'in izleme çıkışını gönderdiği bir dosyayı belirtir. Bu parametre ayrıca dosya izleme dinleyicisini seçer.
Tür: | String |
Diğer adlar: | PSPath, Path |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Force
Komutu, kullanıcı onayı istemeden çalışmaya zorlar. FilePath parametresiyle kullanılır. cmdletForce parametresini kullanarak bile güvenlik kısıtlamalarını geçersiz kılamaz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-InputObject
İzleme sırasında işlenen ifadenin girişini belirtir. İfadenin kabul ettiği girişi temsil eden bir değişken girebilir veya bir nesneyi işlem hattından geçirebilirsiniz.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-ListenerOption
Çıktıdaki her izleme iletisinin ön ekine isteğe bağlı verileri belirtir. Bu parametre için kabul edilebilir değerler şunlardır:
None
LogicalOperationStack
DateTime
Timestamp
ProcessId
ThreadId
Callstack
None
varsayılan değerdir.
Bu değerler, bayrak tabanlı bir numaralandırma olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrak ayarlamak için birden çok değeri birlikte birleştirebilirsiniz. Değerler, ListenerOption parametresine bir değer dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. cmdlet'i bir ikili OR işlemi kullanarak değerleri birleştirir. Değerleri dizi olarak geçirmek en basit seçenektir ve değerler üzerinde sekme tamamlama özelliğini kullanmanıza da olanak tanır.
Tür: | TraceOptions |
Kabul edilen değerler: | None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Name
İzlenen bir PowerShell bileşenleri dizisini belirtir. Her bileşenin izleme kaynağının adını girin. Joker karakterlere izin verilir. Bilgisayarınızda izleme kaynaklarını bulmak için Get-TraceSource
yazın.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Option
İzlenen olayların türünü belirler. Bu parametre için kabul edilebilir değerler şunlardır:
None
Constructor
Dispose
Finalizer
Method
Property
Delegates
Events
Exception
Lock
Error
Errors
Warning
Verbose
WriteLine
Data
Scope
ExecutionFlow
Assert
All
All
varsayılan değerdir.
Aşağıdaki değerler diğer değerlerin birleşimleridir:
-
ExecutionFlow
:Constructor
,Dispose
,Finalizer
,Method
,Delegates
,Events
,Scope
-
Data
:Constructor
,Dispose
,Finalizer
,Property
,Verbose
,WriteLine
-
Errors
:Error
,Exception
Bu değerler, bayrak tabanlı bir numaralandırma olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrak ayarlamak için birden çok değeri birlikte birleştirebilirsiniz. Değerler Option parametresine bir değer dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. cmdlet'i bir ikili OR işlemi kullanarak değerleri birleştirir. Değerleri dizi olarak geçirmek en basit seçenektir ve değerler üzerinde sekme tamamlama özelliğini kullanmanıza da olanak tanır.
Tür: | PSTraceSourceOptions |
Kabul edilen değerler: | 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 |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-PSHost
Cmdlet'in izleme çıkışını PowerShell konağına gönderdiğini gösterir. Bu parametre ayrıca PSHost izleme dinleyicisini seçer.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
İfadenin girişini temsil eden nesneleri bu cmdlet'e aktarabilirsiniz.
Çıkışlar
Bu cmdlet kendi çıkışını döndürmez. İzlenen komut çıkış döndürebilir. Bu cmdlet, komut izlemesini hata ayıklama akışına yazar.
Notlar
İzleme, geliştiricilerin programlarda hata ayıklamak ve bunları iyileştirmek için kullandığı bir yöntemdir. İzleme sırasında program, iç işlemedeki her adım hakkında ayrıntılı iletiler oluşturur. PowerShell izleme cmdlet'leri PowerShell geliştiricilerine yardımcı olmak için tasarlanmıştır, ancak tüm kullanıcılar tarafından kullanılabilir. Kabuğun işlevselliğinin neredeyse her yönünü izlemenize olanak sağlar.
İzleme kaynağı, her PowerShell bileşeninin izlemeyi yöneten ve bileşen için izleme iletileri oluşturan bölümüdür. Bir bileşeni izlemek için izleme kaynağını tanımlarsınız.
İzleme için etkinleştirilmiş PowerShell bileşenlerinin listesini görmek için Get-TraceSource
kullanın.
İzleme dinleyicisi izlemenin çıkışını alır ve kullanıcıya görüntüler. İzleme verilerini bir kullanıcı modu veya çekirdek modu hata ayıklayıcısına, konak veya konsola, bir dosyaya veya System.Diagnostics.TraceListener sınıfından türetilen özel bir dinleyiciye göndermeyi seçebilirsiniz.