Trace-Command (Microsoft.PowerShell.Utility)
Trace-Command
- Modül:
- Microsoft.PowerShell.Utility
Belirtilen ifadenin veya komutun izini yapılandırır ve 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>]Tanım
Trace-Command cmdlet'i belirtilen ifade veya komutun izini yapılandırır ve 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 bir ifadeyi izleme
Bu örnek, Get-Process Notepad ifadesinin meta veri işleme, parametre bağlama ve cmdlet oluşturma ve yok etme işlemlerinin izini başlatır.
Trace-Command -Name metadata,parameterbinding,cmdlet -Expression {Get-Process Notepad} -PSHostİzleme kaynaklarını belirtmek için Ad parametresini, komutu belirtmek için İfade parametresini ve çıkışı göndermek için PSHost parametresini kullanır. konsol. Herhangi bir izleme seçeneği veya dinleyici seçeneği belirtmediğinden komut varsayılanları kullanır:
- Hepsi izleme seçenekleri için
- Dinleyici seçenekleri için yok
Örnek 2: ParameterBinding işlemlerinin eylemlerini izleme
Bu örnek, PowerShell'in ardışık düzenden girdi alan bir Get-Alias ifadesini işlerken ParameterBinding işlemlerinin eylemlerini izler.
$A = "i*"
Trace-Command ParameterBinding {Get-Alias $Input} -PSHost -InputObject $A
Trace-Command'da InputObject parametresi, izleme sırasında işlenen ifadeye bir nesneyi iletir.
İlk komut i* dizesini $A değişkeninde saklar. İkinci komut, ParameterBinding izleme kaynağıyla birlikte Trace-Command cmdlet'ini kullanır. PSHost parametresi çıktıyı konsola gönderir.
İşlenmekte olan ifade Get-Alias $Input'tur ve burada $Input değişkeni InputObject parametresiyle ilişkilendirilir. InputObject parametresi, $A değişkenini ifadeye iletir. Gerçekte, izleme sırasında işlenen komut Get-Alias -InputObject $A" veya "$A | Get-Alias.
Örnek 3: Yerel komutlar için ParameterBinding işlemlerini izleme
PowerShell 7.3, yerel komutlar için parametre bağlamayı izleme yeteneğini ekledi. Aşağıdaki örnek, PowerShell'in yerel TestExe komutu için komut satırı bağımsız değişkenlerini nasıl ayrıştırdığını gösterir.
$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 BeginProcessingParametreler
-ArgumentList
İzlenen komutun parametrelerini ve parametre değerlerini belirtir. ArgumentList'in takma adı Args'tır. Bu özellik dinamik parametrelerde hata ayıklamak için kullanışlıdır.
ArgumentList'in davranışı hakkında daha fazla bilgi için bkz. about_Splatting.
- Tip :
Object[]
- Takma adlar:
Args
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
-
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Command
İzleme sırasında işlenen bir komutu belirtir.
Bu parametreyi kullandığınızda PowerShell, komutu tıpkı bir ardışık düzende işleneceği gibi işler. Örneğin, komut bulma her gelen nesne için tekrarlanmaz.
- Tip :
String
- Konum:
1
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
-
False
-Debugger
Cmdlet'in izleme çıktısını hata ayıklayıcıya gönderdiğini belirtir. Çıktıyı herhangi bir kullanıcı modunda veya çekirdek modu hata ayıklayıcısında veya Visual Studio'da görüntüleyebilirsiniz. Bu parametre aynı zamanda varsayılan izleme dinleyicisini de seçer.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Expression
İzleme sırasında işlenen ifadeyi belirtir. İfadeyi kaşlı ayraçların ({comcode>) içine alın.
- Tip :
ScriptBlock
- Konum:
1
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-FilePath
Cmdlet'in izleme çıktısını gönderdiği dosyayı belirtir. Bu parametre aynı zamanda dosya izleme dinleyicisini de seçer.
- Tip :
String
- Takma adlar:
PSPath, Path
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Force
Komutu kullanıcı onayı istemeden çalışmaya zorlar. FilePath parametresiyle birlikte kullanılır. Force parametresi kullanılsa bile cmdlet güvenlik kısıtlamalarını geçersiz kılamaz.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-InputObject
İzleme sırasında işlenmekte olan ifadeye girişi belirtir. İfadenin kabul ettiği girişi temsil eden bir değişken girebilir veya bir nesneyi işlem hattından geçirebilirsiniz.
- Tip :
PSObject
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
-ListenerOption
Çıktıdaki her izleme iletisinin önekine isteğe bağlı verileri belirtir. Bu parametre için kabul edilebilir değerler şunlardır:
NoneLogicalOperationStackDateTimeTimestampProcessIdThreadIdCallstackYok varsayılandır.
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 bir araya getirebilirsiniz. Değerler, ListenerOption parametresine bir değerler dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak aktarılabilir. Cmdlet, ikili VEYA işlemini kullanarak değerleri birleştirir. Değerleri bir dizi olarak iletmek en basit seçenektir ve aynı zamanda değerler üzerinde sekme tamamlamayı kullanmanıza da olanak tanır.
- Tip :
TraceOptions
- Kabul edilen değerler:
Yok, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Name
İzlenen PowerShell bileşenlerinin bir dizisini belirtir. Her bileşenin izleme kaynağının adını girin. Joker karakterlere izin verilir. Bilgisayarınızdaki izleme kaynaklarını bulmak için Get-TraceSource yazın.
- Tip :
String[]
- Konum:
0
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Option
İzlenen olayların türünü belirler. Bu parametre için kabul edilebilir değerler şunlardır:
NoneConstructorDisposeFinalizerMethodPropertyDelegatesEventsExceptionLockErrorErrorsWarningVerboseWriteLineDataScopeExecutionFlowAssertAllTümü varsayılandır.
Aşağıdaki değerler diğer değerlerin birleşimidir:
ExecutionFlow:Oluşturucu,Dispose,Sonlandırıcı,Yöntem,Temsilciler,Etkinlikler,KapsamVeri:Oluşturucu,Dispose,Sonlandırıcı,Özellik,Verbose,WriteLineHatalar:Hata,İstisna
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 bir araya getirebilirsiniz. Değerler, Option parametresine bir değerler dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak aktarılabilir. Cmdlet, ikili VEYA işlemini kullanarak değerleri birleştirir. Değerleri bir dizi olarak iletmek en basit seçenektir ve aynı zamanda değerler üzerinde sekme tamamlamayı kullanmanıza da olanak tanır.
- Tip :
PSTraceSourceSeçenekleri
- Kabul edilen değerler:
Yok, Oluşturucu, Atma, Sonlandırıcı, Yöntem, Özellik, Temsilciler, Olaylar, İstisna, Kilit, Hata, Hatalar, Uyarı, Ayrıntılı, WriteLine, Veri, Kapsam, ExecutionFlow, Assert, Tümü
- Konum:
2
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-PSHost
Cmdlet'in izleme çıktısını PowerShell ana bilgisayarına gönderdiğini belirtir. Bu parametre aynı zamanda PSHost izleme dinleyicisini de seçer.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
Girişler
PSObject
İfadeye girişi temsil eden nesneleri bu cmdlet'e aktarabilirsiniz.
Çıkışlar
PSObject
Bu cmdlet kendine ait bir çıktı döndürmez. İzlenen komut çıktı döndürebilir. Bu cmdlet, komut izlemesini hata ayıklama akışına yazar.
Notlar
İzleme, geliştiricilerin programlarda hata ayıklamak ve hassaslaştırmak için kullandıkları bir yöntemdir. İzleme sırasında program, dahili işleminin her adımı hakkında ayrıntılı mesajlar üretir. 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 tanırlar.
İzleme kaynağı, her PowerShell bileşeninin izlemeyi yöneten ve bileşen için izleme mesajları oluşturan parçasıdır. Bir bileşeni izlemek için izleme kaynağını tanımlarsınız.
İzleme için etkinleştirilen PowerShell bileşenlerinin listesini görmek için Get-TraceSource'u kullanın.
Bir izleme dinleyicisi, izlemenin çıktısını alır ve bunu kullanıcıya görüntüler. İzleme verilerini bir kullanıcı modu veya çekirdek modu hata ayıklayıcıya, ana makineye veya konsola, bir dosyaya veya System.Diagnostics.TraceListener sınıfından türetilen özel bir dinleyiciye göndermeyi seçebilirsiniz. .