PowerShell modülü yazma konusunda dikkat edilmesi gerekenler
Bu belge, bir modülün en iyi performans için nasıl yazıldıklarıyla ilgili bazı yönergeleri içerir.
Modül Bildirimi Yazma
Aşağıdaki yönergeleri kullanmayan bir modül bildirimi, modül bir oturumda kullanılmasa bile genel PowerShell performansı üzerinde belirgin bir etkiye sahip olabilir.
Komut otomatik bulma, modülün hangi komutları dışarı aktardığını ve bu analizin pahalı olabileceğini belirlemek için her modülü analiz eder. Modül analizinin sonuçları kullanıcı başına önbelleğe alınır, ancak önbellek ilk çalıştırmada kullanılamaz; bu kapsayıcılarla ilgili tipik bir senaryodur. Modül analizi sırasında, dışarı aktarılan komutlar bildirimden tam olarak belirlenebiliyorsa modülün daha pahalı bir şekilde analiz edilmesi önlenebilir.
Yönergeler
Modül bildiriminde ,
CmdletsToExport
veFunctionsToExport
girdilerindeAliasesToExport
joker karakterler kullanmayın.Modül belirli bir türdeki komutları dışarı aktarmıyorsa, belirterek
@()
bildirimde bunu açıkça belirtin. Eksik veya$null
girdi, joker karakteri*
belirtmekle eşdeğerdir.
Mümkün olduğunda aşağıdakilerden kaçınılmalıdır:
@{
FunctionsToExport = '*'
# Also avoid omitting an entry, it's equivalent to using a wildcard
# CmdletsToExport = '*'
# AliasesToExport = '*'
}
Bunun yerine aşağıdakini kullanın:
@{
FunctionsToExport = 'Format-Hex', 'Format-Octal'
CmdletsToExport = @() # Specify an empty array, not $null
AliasesToExport = @() # Also ensure all three entries are present
}
CDXML'yi kullanmaktan kaçının
Modülünüzü nasıl uygulayacaklarına karar verirken üç birincil seçenek vardır:
- İkili (genellikle C#)
- Betik (PowerShell)
- CDXML (CIM'yi sarmalama XML dosyası)
Modülünüzü yükleme hızı önemliyse, CDXML kabaca ikili modülden daha yavaş bir büyüklük sırasıdır.
İkili modül, önceden derlendiğinden ve makine başına bir kez JIT derlemek için NGen'i kullanabileceğinden en hızlı modülü yükler.
PowerShell'in derlemeden ve yürütmeden önce betiği ayrıştırması gerektiğinden, betik modülü genellikle ikili modülden biraz daha yavaş yüklenir.
CDXML modülü genellikle bir betik modülünden çok daha yavaştır çünkü önce bir XML dosyasını ayrıştırması gerekir ve daha sonra ayrıştırılan ve derlenen biraz PowerShell betiği oluşturur.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin