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ış Bilgileri akışı ekler
- DSC'de dört yeni DSC kaynağı da dahil olmak üzere iyileştirmeler:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- ProcessSet
- 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 Envanter Günlüğü (SIL) desteği eklendi
- Kullanıcı isteklerine ve sorunlarına yanıt olarak cmdlet'leri yeni 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 dahil olmak üzere çeşitli iyileştirmeler sağlar:
- Yeni cmdlet'ler
- PowerShellGet geliştirmeleri imzalı modülleri zorunlu kılmayı ve JEA modüllerini yüklemeyi içerir
- PackageManagement Kapsayıcılar, CBS Kurulumu, EXE tabanlı kurulum, CAB paketleri için destek eklendi
- DSC ve PowerShell sınıfları için hata ayıklama geliştirmeleri
- Çekme Sunucusundan gelen katalog imzalı modülleri zorlama ve PowerShellGet cmdlet'lerini kullanma dahil olmak üzere güvenlik geliştirmeleri
- Bir dizi kullanıcı isteğine ve sorununa verilen yanıtlar
Önemli
Windows Server 2008 veya Windows 7'ye WMF 5.1'i 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 SP1iç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.
- Desktop Edition: .NET Framework üzerine kurulmuştur ve Windows'un Sunucu Çekirdeği ve Windows Masaüstü gibi tam ayak izi sürümleri üzerinde çalışan PowerShell sürümlerini hedefleyen betikler ve modüllerle uyumluluk sağlar.
- Core Edition: .NET Core üzerine kurulmuştur ve Nano Sunucu ve Windows IoT gibi Windows'un azaltılmış ayak izi sürümlerinde çalışan PowerShell sürümlerini hedefleyen 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 parametresi Get-Module kullanarak Sonuçları CompatiblePSEditions'a göre filtrele
- Uyumlu bir PowerShell sürümünde çalıştırılmadığı sürece betik yürütülmesini 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, bir modül hakkındaki verileri önbelleğe almak için kullanılan dosya (dışarı aktarmış olduğu komutlar gibi) üzerinde denetim sağlar.
Varsayılan olarak, bu önbellek ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
dosyasında depolanır. Önbellek genellikle başlangıçta bir 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 $env:PSModuleAnalysisCachePath
ortam değişkenini ayarlayın. Bu ortam değişkenindeki 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
Get-Module -FullyQualifiedName
ile aynı biçime sahiptir.Örnek:
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
Modülün birden çok sürümü varsa PowerShell,
çözümleme mantığını kullanır ve hata döndürmez; ve ile aynı davranıştır.
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 deposundaki CHANGELOG inceleyerek Pest'deki değişiklikleri gözden geçirebilirsiniz.