Windows Management Framework (WMF) 5.x Sürüm Notları
WMF 5.0 Değişiklikleri
- PowerShell 5.0 yeni bir yapılandırılmış Bilgi akışı ekler
- DSC'de dört yeni DSC kaynağı içeren iyileştirmeler:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- İşlem Kümesi
- PowerShell uzaktan iletişim aracılığıyla rol tabanlı yönetimi etkinleştirmek için Yeterli Yönetim eklendi
- PowerShell 5.0, kullanıcı tanımlı sınıfları ve numaralandırmaları içerecek şekilde dili genişletir
- PowerShell ISE'de geliştirilmiş hata ayıklama özellikleri ve uzaktan hata ayıklama eklendi
- PowerShellGet ve PackageManagement modülleri eklendi
- Gelişmiş PowerShell betik günlüğü ve transkriptleri
- Şifreleme İletisi Söz Dizimi cmdlet'leri ekleme
- WMF 5.0, Windows için NetworkSwitchManager modülünü içerir
- Microsoft.PowerShell.ODataUtils modülü eklendi
- Yazılım Envanteri Günlüğü (SIL) desteği eklendi
- Kullanıcı isteklerine ve sorunlarına yanıt olarak yeni cmdlet'leri kesme veya güncelleştirme
WMF 5.1 Değişiklikleri
WMF 5.1, Windows Server 2016 ile yayımlanan PowerShell, WMI, WinRM ve Yazılım Envanter Günlüğü (SIL) bileşenlerini içerir. WMF 5.1, Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 ve 2012 R2'ye yüklenebilir ve WMF 5.0 üzerinde aşağıdakiler gibi çeşitli geliştirmeler sağlar:
- Yeni cmdlet’ler
- PowerShellGet iyileştirmeleri arasında imzalı modülleri zorlama ve JEA modülleri yükleme bulunur
- PackageManagement; Kapsayıcılar, CBS Kurulumu, EXE temelli kurulum ve CAD paketleri için destek ekledi
- DSC ve PowerShell sınıfları için hata ayıklama iyileştirmeleri
- PowerShellGet cmdlet’leri kullanırken Çekme Sunucusundan gelen katalog imzalı modülleri zorlamayı da içeren güvenlik iyileştirmeleri
- Birkaç kullanıcı talebi ve sorununa yanıt
Önemli
WMF 5.1'i Windows Server 2008 veya Windows 7'ye yüklemeden önce WMF 3.0'ın yüklü olmadığını onaylayın. Daha fazla bilgi için bkz. Windows Server 2008 R2 SP1 ve Windows 7 SP1 için WMF 5.1 Önkoşulları.
PowerShell Sürümleri
Sürüm 5.1'den başlayarak PowerShell, farklı özellik kümelerini ve platform uyumluluğunu belirten farklı sürümlerde kullanılabilir.
- Masaüstü Sürümü: .NET Framework üzerine yapılandırılmıştır ve Windows’un Sunucu Çekirdeği ve Windows Masaüstü gibi tam boyutlu sürümlerinde çalışan PowerShell sürümlerinin hedeflendiği betikler ve modüllerle uyumluluk sağlar.
- Çekirdek Sürümü: .NET Core üzerine yapılandırılmıştır ve Windows’un Nano Sunucu ve Windows IoT gibi azaltılmış boyutlu sürümlerinde çalışan PowerShell sürümlerinin hedeflendiği betikler ve modüllerle uyumluluk sağlar.
PowerShell Sürümlerini kullanma hakkında daha fazla bilgi edinin
- $PSVersionTable kullanarak PowerShell'in çalışan sürümünü belirleme
- PSEdition parametresini kullanarak Get-Module sonuçları CompatiblePSEditions'a göre filtreleyin
- PowerShell'in uyumlu bir sürümünde çalıştırılmadığı sürece betik yürütmeyi engelleme
- Modülün belirli PowerShell sürümleriyle uyumluluğunu bildirme
Modül Çözümleme Önbelleği
WMF 5.1'den başlayarak PowerShell, dışarı aktarmış olduğu komutlar gibi bir modül hakkındaki verileri önbelleğe almak için kullanılan dosya üzerinde denetim sağlar.
Varsayılan olarak, bu önbellek dosyasında ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
depolanır. Önbellek genellikle başlangıçta komut aranırken okunur ve bir modül içeri aktarıldıktan bir süre sonra arka plan iş parçacığına yazılır.
Önbelleğin varsayılan konumunu değiştirmek için PowerShell'i başlatmadan önce ortam değişkenini $env:PSModuleAnalysisCachePath
ayarlayın. Bu ortam değişkenine yapılan değişiklikler yalnızca alt işlemleri etkiler. Değerin, PowerShell'in dosya oluşturma ve yazma iznine sahip olduğu bir tam yolu (dosya adı dahil) adlandırması gerekir. Dosya önbelleğini devre dışı bırakmak için bu değeri geçersiz bir konuma ayarlayın, örneğin:
$env:PSModuleAnalysisCachePath = 'nul'
Bu, yolu geçersiz bir cihaza ayarlar. PowerShell yola yazamıyorsa hata döndürülür, ancak bir izleyici kullanarak hata bildirimi görebilirsiniz:
Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }
Önbelleği yazarken, PowerShell gereksiz yere büyük bir önbellekten kaçınmak için artık mevcut olmayan modülleri denetler. Bazen bu denetimler istenmez; bu durumda şunları ayarlayarak bunları kapatabilirsiniz:
$env:PSDisableModuleAnalysisCacheCleanup = 1
Bu ortam değişkeninin ayarlanması geçerli işlemde hemen geçerli olur.
Modül sürümünü belirtme
WMF 5.1'de, using module
PowerShell'deki modülle ilgili diğer yapılarla aynı şekilde davranır.
Daha önce belirli bir modül sürümünü belirtmenin bir yolu yoktu; birden çok sürüm varsa, bu bir hatayla sonuçlanır.
WMF 5.1'de:
ModuleSpecification Constructor (Hashtable) kullanabilirsiniz.
Bu karma tablo ile aynı biçime
Get-Module -FullyQualifiedName
sahiptir.Örnek:
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
Modülün birden çok sürümü varsa, PowerShell ile aynı çözümleme mantığını
Import-Module
kullanır ve hata döndürmez; veImport-DscResource
ileImport-Module
aynı davranış.
Pester geliştirmeleri
WMF 5.1'de, PowerShell ile birlikte gelen Pester sürümü 3.3.5'ten 3.4.0'a güncelleştirildi. Bu güncelleştirme Nano Sunucu'da Pester için daha iyi davranış sağlar.
GitHub deposunda CHANGELOG'ı inceleyerek Pest'deki değişiklikleri gözden geçirebilirsiniz.