PowerShell 7.2'deki Yenilikler

PowerShell 7.2, .NET 6.0 üzerinde derlenen bir sonraki Uzun Süreli Hizmet (LTS) sürümüdür.

PowerShell 7.2 aşağıdaki özellikleri, güncelleştirmeleri ve hataya neden olan değişiklikleri içerir.

  • En çok desteklenen Linux dağıtımları için yeni evrensel yükleyici paketleri
  • Windows'ta Microsoft Update desteği
  • 2 yeni deneysel özellik
    • Geliştirilmiş yerel komut bağımsız değişkeni geçirme desteği
    • ANSI FileInfo renk desteği
  • Geliştirilmiş Sekme Tamamlamaları
  • Tahmine Dayalı IntelliSense ile PSReadLine 2.1
  • 7 deneysel özellik temele yükseltildi ve 1 kaldırıldı
  • Gelecekteki iyileştirmeleri etkinleştirmek için DSC'yi PowerShell 7'den ayırma
  • Kullanılabilirliği geliştirmek için birkaç hataya neden olan değişiklik

Değişikliklerin tam listesi için GitHub deposundaki Değişiklik Günlüğü'ne bakın.

Yükleme güncelleştirmeleri

Tercih ettiğiniz işletim sistemi için yükleme yönergelerini denetleyin:

Ayrıca PowerShell 7.2, Windows ve macOS'un ARM64 sürümlerini, Debian ve Ubuntu'nun ARM32 ve ARM64 sürümlerini destekler.

Desteklenen işletim sistemleri ve destek yaşam döngüsü hakkında güncel bilgiler için bkz . PowerShell Destek Yaşam Döngüsü.

Linux dağıtımları için yeni evrensel yükleme paketleri

Daha önce CentOS, RHEL, Debian ve Ubuntu'nun desteklenen her sürümü için ayrı yükleyici paketleri oluşturmuştuk. Evrensel yükleyici paketi sekiz farklı paketi tek bir pakette birleştirerek Linux'ta yüklemeyi daha basit hale getirir. Evrensel paket, hedef dağıtım için gerekli bağımlılıkları yükler ve PowerShell'in çalışmasını sağlamak için platforma özgü değişiklikleri oluşturur.

Windows için Microsoft Update desteği

PowerShell 7.2, Microsoft Update için destek ekler. Bu özelliği etkinleştirdiğinizde, ister İş için Windows Update, WSUS, SCCM ister Ayarlar'daki etkileşimli WU iletişim kutusu olsun, geleneksel Windows Update (WU) yönetim akışınızda en son PowerShell 7 güncelleştirmelerini alırsınız.

PowerShell 7.2 MSI paketi aşağıdaki komut satırı seçeneklerini içerir:

  • USE_MU - Bu özelliğin iki olası değeri vardır:
    • 1 (varsayılan) - Microsoft Update veya WSUS aracılığıyla güncelleştirmeyi kabul eder
    • 0 - Microsoft Update veya WSUS aracılığıyla güncelleştirmeyi kabul etmeyin
  • ENABLE_MU
    • 1(varsayılan) - Microsoft Update'i Otomatik Güncelleştirmeler veya Windows Update'i kullanmayı kabul eder
    • 0- Microsoft Update'i Otomatik Güncelleştirmeler veya Windows Update'i kullanmayı kabul etmeyin

Deneysel Özellikler

Aşağıdaki deneysel özellikler artık bu sürümdeki temel özelliklerdir:

Bu sürümde aşağıdaki deneysel özellik eklendi:

  • PSNativeCommandArgumentPassing - Bu deneysel özellik etkinleştirildiğinde PowerShell, yerel yürütülebilir dosyayı çağırırken bir dizeyi yeniden oluşturma mekanizmamız yerine StartProcessInfo nesnesinin ArgumentList özelliğini kullanır. Bu özellik çalışma zamanında davranışı seçmenize olanak tanıyan yeni bir otomatik değişken $PSNativeCommandArgumentPassing ekler.

  • PSAnsiRenderingFileInfo - Dosya bilgilerinin ANSI renk özelleştirmesine izin verin.

  • PSLoadAssemblyFromNativeCode - Derlemenin yerel koddan yüklenmesine izin vermek için bir API'yi kullanıma sunar.

Deneysel Özellikler hakkında daha fazla bilgi için bkz . Deneysel Özellikleri Kullanma.

Geliştirilmiş Sekme Tamamlamaları

PowerShell 7.2, Sekme Tamamlama ile ilgili çeşitli geliştirmeler içerir. Bu değişiklikler hata düzeltmelerini ve kullanılabilirliği geliştirmeyi içerir.

  • Konumlanmamış hakkında* konular için sekme tamamlamayı düzeltme (#15265) (Teşekkürler @MartinGC94)
  • Tamamlamalarda konumsal parametre olarak kabul edilen sıçrama düzeltildi (#14623) (Teşekkürler @MartinGC94)
  • Açıklama tabanlı yardım anahtar sözcükleri için tamamlama ekleme (#15337) (Teşekkürler @MartinGC94)
  • Requires deyimleri için tamamlama ekleme (#14596) (Teşekkürler @MartinGC94)
  • Format-* cmdlet'lerinin View parametresi için sekme tamamlama eklendi (#14513) (Teşekkürler @iSazonov)

PSReadLine 2.1 Tahmine Dayalı IntelliSense

PSReadLine 2.1, komut satırı tamamlamaya yönelik tahminler sağlamak için bir çerçeve oluşturan API'leri kullanıma sunar CommandPrediction . API, kullanıcıların kullanıcının geçmişindeki eşleşen tahminlere göre tam komutları bulmasını, düzenlemesini ve yürütmesini sağlar.

Tahmine dayalı IntelliSense varsayılan olarak devre dışıdır. Tahminleri etkinleştirmek için aşağıdaki komutu çalıştırın:

Set-PSReadLineOption -PredictionSource History

Gelecekteki iyileştirmeleri etkinleştirmek için DSC'yi PowerShell 7'den ayırma

PSDesiredStateConfiguration modülü PowerShell 7.2 paketinden kaldırıldı ve artık PowerShell Galerisi yayımlandı. Bu, PSDesiredStateConfiguration modülünün PowerShell'den bağımsız olarak geliştirilmesini sağlar ve kullanıcılar ortamları için PowerShell ve PSDesiredStateConfiguration sürümlerini karıştırabilir ve eşleştirebilir. PSDesiredStateConfiguration 2.0.5'i PowerShell Galerisi yüklemek için:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Önemli

MaximumVersion parametresini eklediğinizden emin olun veya önemli farklılıklar içeren PSDesireStateConfiguration'ın 3 (veya üzeri) sürümünü yükleyebilirsiniz.

Altyapı güncelleştirmeleri

  • Bir yerel PowerShell konağından bellekteki derlemeleri uyandırma yoluyla yüklemek için işlev ekleme LoadAssemblyFromNativeMemory · Çekme İsteği #14652

Hataya Neden Olan Değişiklikler ve Geliştirmeler

  • PSDesiredStateConfiguration, PowerShell 7.2 paketinden kaldırıldı
  • PowerShell Linux deb ve RPM paketlerini evrensel hale getirme (#15109)
  • Deneysel özellik PSNativeCommandArgumentPassing: Yerel yürütülebilir çağırma için ArgumentList kullanma (#14692)
  • Betik cmdlet'lerinden gelen tüm çıkışlar için ayarlandığından emin olun -PipelineVariable (#12766)
  • -Derinlik değerini aşarsa ConvertTo-Json uyarı yay (#13692)
  • -Directory anahtarının diğer D adını kaldırma CL-General #15171
  • Değiştirilebilir değer türlerini algılamayı geliştirme (#12495)
  • Kilitleme altında NoLanguage modunda kısıtla New-Object (#14140)
  • Yürütme İlkesi Atlama yapılandırması öncesinde AppLocker Reddetme yapılandırmasını zorunlu kılma (#15035)
  • CodeProperty'denişaret eden FileSystemInfo.LinkTarget AliasPropertyolarak değiştirme FileSystemInfo.Target (#16165)