PowerShell 7.4'teki Yenilikler

PowerShell 7.4 aşağıdaki özellikleri, güncelleştirmeleri ve hataya neden olan değişiklikleri içerir. PowerShell 7.4, .NET 8.0.0 üzerine kurulmuştur.

Değişikliklerin tam listesi için GitHub deposunda CHANGELOG bölümüne bakın.

Hataya neden olan değişiklikler

  • Nano sunucu docker görüntüleri bu sürümde kullanılamaz
  • Common Parameters'a ProgressAction parametresi eklendi
  • Bağımsız değişken boş bir dize olduğunda ArgumentNullException yerine ArgumentException oluşturacak şekilde bazı PowerShell API'lerini güncelleştirin (#19215) (Teşekkürler@xtqqczze!)
  • (#19320) ile ilgili #requires -pssnapin kodu kaldırma
  • Test-Json şimdi Newtonsoft.Json.Schema yerine JsonSchema.Net kullanıyor. Bu değişiklikle, Test-Json eski Taslak 4 şemalarını artık desteklemez. (#18141) (Teşekkürler @gregsdennis!) JSON şemaları hakkında daha fazla bilgi için bkz . JSON Şeması belgeleri.
  • Şu andan itibaren Test-Connection çıkış, TCP bağlantı testleri hakkında daha ayrıntılı bilgiler içerir
  • .NET tarafından etkilenen değişiklikler kullanıma sunulmuştur Test-Connection. Cmdlet artık özel arabellek boyutu kullanılırken Linux platformlarında kullanılması sudo gerektiğiyle ilgili bir hata döndürür (#20369)
  • Deneysel PSNativeCommandPreserveBytePipe özelliği artık temel özelliktir. PowerShell artık yerel bir komutun stdout akışını bir dosyaya yeniden yönlendirirken veya bayt akışı verilerini yerel komutun stdin akışına yönlendirirken bayt akışı verilerini korur.
  • RelativeBasePath parametresi kullanılırken içindeki Resolve-Path göreli yolların nasıl işleneceğini değiştirme (#19755) (Teşekkürler@MartinGC94!)
  • Kullanılmayan PSv2 kodunu kaldırma - TabExpansion işlevini kaldırır (#18337)

Yükleyici güncelleştirmeleri

Windows MSI paketi artık yükleme sırasında PowerShell telemetrisini devre dışı bırakma seçeneği sunar. Daha fazla bilgi için bkz . Komut satırından msi paketini yükleme.

PSResourceGet ve PSReadLine'ın güncelleştirilmiş sürümleri

PowerShell 7.4, Microsoft.PowerShell.PSResourceGet v1.0.1'i içerir. Bu modül PowerShellGet v2.2.5 ve PackageManagement v1.4.8.1 ile birlikte yüklenir. Daha fazla bilgi için Microsoft.PowerShell.PSResourceGet belgelerine bakın.

PowerShell 7.4 artık PSReadLine v2.3.4'i içeriyor. Daha fazla bilgi için PSReadLine belgelerine bakın.

Sekme tamamlama geliştirmeleri

Sekmenin tamamlanmasını iyileştirmeye yönelik tüm çalışmaları için @MartinGC94 ve diğer kişilere çok teşekkür ederiz.

  • Boş bir dizi ifadesiyle betikteki ilk komutu tamamlarken oluşan sorun düzeltildi (#18355)
  • Konumsal bağımsız değişken tamamlamayı düzeltme (#17796)
  • Konumsal bağımsız değişkenleri tamamlarken varsayılan parametre kümesinin önceliğini belirleme (#18755)
  • Dinamik parametreler için sahte bağlamayı geliştirme (#18030)
  • Karma tablo anahtarlarının tür çıkarımını geliştirme (#17907)
  • Boş dönüş deyimleri için tür çıkarımı hatası düzeltilir (#18351)
  • Get-Random için tür çıkarımı geliştirme (#18972)
  • Tüm kapsam değişkenleri için tür çıkarımı düzeltilir (#18758)
  • İşlem hattında çıkarsanan türlerin numaralandırmasının geliştirilmesi (#17799)
  • Sabit Listeleri karşılaştırırken karşılaştırmalardaki değerler için tamamlama ekleme (#17654)
  • Sabit listeleri için özellik ataması tamamlama ekleme (#19178)
  • PSCustomObject değişken özellikleri için tamamlama düzeltilir (#18682)
  • Öznitelik bağımsız değişkeninde üye tamamlamayı düzeltme (#17902)
  • Yedekli parametre diğer adlarını tamamlama sonuçlarından dışla (#19382)
  • Temel türleri olan sınıflar için sınıf üyesi tamamlama düzeltmesi (#19179)
  • Anahtar sözcükleri kullanma için tamamlama ekleme (#16514)
  • Değişkenleri tamamlarken TabExpansion2 değişken sızıntısını düzeltme (#18763)
  • ScriptBlock kapsamlarında değişkenlerin tamamlanmasını etkinleştirme (#19819)
  • foreach deyimi değişkeninin tamamlanması düzeltilir (#19814)
  • Değişken türü çıkarım önceliği düzeltilir (#18691)
  • PowerShell Enum sınıfı için üye tamamlama düzeltmesi (#19740)
  • Yöntem çağrılarındaki dizin ifadelerinde dizi değişmez değerleri için ayrıştırma düzeltilir (#19224)
  • Yolun tamamlanmasını geliştirme (#19489)
  • CompleteInput'ta boş betik girişi için dizin oluşturma sınır dışı hatasını düzeltme (#19501)
  • Değişken tamamlama performansını geliştirme (#19595)
  • Tür kısıtlanmış değişken atamaları, iç içe Hashtable'lar ve daha fazlası için Karma Tablo anahtarını tamamlamayı geliştirme (#17660)
  • Dış uygulama çıkışını dize olarak çıkar (#19193)
  • Sabit listelerin öznitelikler tarafından ValidateRange izin verilmeyen değerleri hariç tutması için parametre tamamlamasını güncelleştirin (#17750) (Teşekkürler @fflaten!).
  • Dinamik parametre tamamlamayı düzeltme (#19510)
  • Data deyimi tarafından atanan değişkenler için tamamlama ekleme (#19831)

Web cmdlet'i geliştirmeleri

Web cmdlet'lerini iyileştirmeye yönelik tüm çalışmalar için @CarloToso ve diğer kişilere çok teşekkür ederiz.

  • Web cmdlet'lerinde Brotli'yi içerecek şekilde sıkıştırmayı çözme (#17955) (Teşekkürler @iSazonov!)
  • Webcmdlet'ler yeniden yönlendirme kodları ve küçük temizlemeye 308 ekler (#18536)
  • İndirme tamamlandığında veya iptal edildiğinde Invoke-WebRequest'te ilerleme çubuğu işlemeyi tamamlayın (#18130)
  • Durum kodu 429 ise web cmdlet'leri yanıt üst bilgilerinden Yeniden Deneme-Sonra aralığını alır (#18717)
  • Web cmdlet'leri varsayılan karakter kümesi kodlamasını UTF8 olarak ayarlar (#18219)
  • Değişikliklerden WebSession.MaximumRedirection'ı koru (#19190)
  • WebCmdlet'leri, varsa kodlama değerini almak için XML bildirimini ayrıştırıyor. (#18748)
  • Kodlama olmadan webcmdlet'lerinde xml -Body kullanımı düzeltildi (#19281)
  • WebCmdlet'lerde varsayılan içerik türü için PUT yöntemi davranışını POST olarak ayarlayın (#19152)
  • WebCmdlet'lerdeki Üst Bilgilerden ContentType'ı dikkate alın (#19227)
  • Web cmdlet'lerine -PreserveHttpMethodOnRedirect ekleyerek özgün HTTP yöntemini korumaya izin ver (#18894)
  • Webcmdlet'ler https'den http'ye yeniden yönlendirmede hata görüntülüyor (#18595)
  • Web cmdlet'lerine AllowInsecureRedirect anahtarı ekleme (#18546)
  • İçerik uzunluğu bilinmediğinde web cmdlet'lerinde ayrıntılı iletiyi geliştirme (#19252)
  • (#19092) içindeki Invoke-WebRequest yanıttaki bağlantılar için göreli URI'yi oluşturun
  • WebCmdlet'lerinde için -CustomMethod POST yeniden yönlendirme düzeltildi (#19111)
  • Önceki yanıtı Webcmdlet'lerde atma (#19117)
  • XML ve json hataları biçimini geliştirme Invoke-WebRequest (#18837)
  • WebCmdlet'lerinin OutFile ve InFile parametrelerine ValidateNotNullOrEmpty ekleme (#19044)
  • HttpKnownHeaderNames güncelleştirme üst bilgileri listesi (#18947)
  • Invoke-RestMethod -FollowRelLink virgül içeren bağlantıları düzeltme (#18829)
  • Web cmdlet'lerinde yeniden yönlendirmeyi yönetme ve KeepAuthorization ile ilgili hata düzeltildi (#18902)
  • HttpResponseException'a StatusCode ekleme (#18842)
  • Web Cmdlet'lerinde HTTP kalıcı bağlantılarını destekleme (#19249) (Teşekkürler @stevenebutler!)
  • Küçük temizleme Invoke-RestMethod (#19490)
  • WebCmdlet'lerin ayrıntılı iletisini doğru HTTP sürümünü gösterecek şekilde geliştirin (#19616)
  • WebCmdlet'lerinde MultipartFileContent'e FileNameStar Ekleme (#19467)
  • Yeniden Deneme-Sonra üst bilgisinden yeniden deneme aralığını almak için WebCmdlet'leri için HTTP durumu 409'dan 429'a düzeltildi. (#19622) (Teşekkürler @mkht!)
  • Web cmdlet'lerine değiştirme -TimeoutSec ve web cmdlet'lerine ekleme -OperationTimeoutSeconds (#19558) (Teşekkürler @stevenebutler!) Diğer cmdlet'ler -ConnectionTimeoutSeconds
  • WebCmdlet'lerde veriler okunurken bağlantı kilitlendiğinde Ctrl+c tuşlarına basın (#19330) (Teşekkürler @stevenebutler!)
  • WebCmdlet'lerde Unix etki alanı yuvasını destekleme (#19343)

Diğer cmdlet iyileştirmeleri

  • Test-Connection şimdi özel arabellek boyutu kullanırken Linux platformlarında kullanma sudo gereksinimiyle ilgili hata döndürüyor (#20369)
  • Biçim komutlarına çıkış türleri ekleme (#18746) (Teşekkürler @MartinGC94!)
  • (#17948) için Get-WinEvent çıkış türü öznitelikleri ekleme (Teşekkürler@MartinGC94!)
  • cmdlet'ine Path ve LiteralPath parametreleri ekleme (#19042) (Teşekkürler Test-Json@ArmaanMcleod!)
  • ve Export-Csv cmdlet'lerine ConvertTo-Csv NoHeader parametresi ekleme (#19108) (Teşekkürler@ArmaanMcleod!)
  • (#18731) öğesineStop-Transcript Confirm ve WhatIf parametreleri ekleme (Teşekkürler@JohnLBevan!)
  • FuzzyMinimumDistance parametresini Get-Command ekleme (#18261)
  • Kodlama parametresinin PowerShell'de kodlama alabilmesini ANSI sağlama (#19298) (Teşekkürler@CarloToso!)
  • İlerleme durumunu ekleme Copy-Item (#18735)
  • Update-Help artık ABD dışı sistemlerde örtük kültür kullanılırken bir hata bildiriyor. (#17780) (Teşekkürler @dkaszews!)
  • Tamamlanmış bir ilerleme kaydı oluştururken etkinlik gerektirmez (#18474) (Teşekkürler @MartinGC94!)
  • cmdlet parametreleri -Head ve -Tail (#19715) için Get-Content negatif değerlere izin verme (Teşekkürler@CarloToso!)
  • Geçerli kültür bir dille ilişkilendirildiğinde düzgün hata oluşturma Update-Help (#19765) (Teşekkürler@josea!)
  • cmdlet'inde Select-Object ve -SkipLast parametrelerinin -Skip birleştirilmesine izin verin. (#18849) (Teşekkürler @ArmaanMcleod!)
  • Cmdlet ekle Get-SecureRandom (#19587)
  • Set-Clipboard -AsOSC52 uzaktan kullanım için (#18222) (Teşekkürler @dkaszews!)
  • Göreli yol çözünürlüğünü hızlandırma Resolve-Path (#19171) (Teşekkürler @MartinGC94!)
  • ve cmdlet'lerine Select-Object switch parametresi -CaseInsensitive eklendi (#19683) (Teşekkürler Get-Unique@ArmaanMcleod!)
  • Restart-Computer ve Stop-Computer Unix'te sudo aracılığıyla çalıştırılmadığında hatayla başarısız olmalıdır (#19824)

Altyapı geliştirmeleri

Güncelleştirmeler$PSStyle

  • Dim ve DimOff özellikleri ekler (#18653)
  • ÖN plan ve arka plan ConsoleColor değerlerini ANSI kaçış sıralarıyla eşleyen PSStyle sınıfına statik yöntemler eklendi (#17938)
  • Hesaplanmış alanlar için tablo üst bilgileri varsayılan olarak italik olarak biçimlendirilir
  • Uzak konakta saygı $PSStyle.OutputRendering desteği ekleme (#19601)
  • Telemetri verileri modüllerin CrescendoBuilt kullanımını içerecek şekilde güncelleştirildi (#20371)

Diğer Altyapı güncelleştirmeleri

  • Özniteliğini bildirirken PowerShell sınıfının Runspace ile ilişkili olmamasını NoRunspaceAffinity sağlama (#18138)
  • Özniteliğini ValidateNotNullOrWhiteSpace ekleme (#17191) (Teşekkürler @wmentha!)
  • Eski bağımsız değişken geçirme listesine ekleme sqlcmd (#18559)
  • İşlevi cd~ ekleme (#18308) (Teşekkürler @GigaScratch!)
  • Genel türlerde dizi türü ayrıştırma düzeltmesi (#19205) (Teşekkürler @MartinGC94!)
  • Cihaz yollarının kökünde joker karakter globbing düzeltmesi (#19442) (Teşekkürler @MartinGC94!)
  • PSModulePath öğelerinin konumlarını almak için genel API ekleme (#19422)
  • Yanlış dizeyi tür dönüştürmeye düzeltme (#19560) (Teşekkürler @MartinGC94!)
  • Birçok kesme noktası kullanıldığında yavaş yürütmeyi düzeltme (#14953) (Teşekkürler @nohwnd!)
  • (#19320) ile ilgili #requires -pssnapin kodu kaldırma

Deneysel Özellikler

PowerShell 7.4 aşağıdaki deneysel özellikleri sunar:

  • PSFeedbackProvider - Sabit kodlanmış öneri çerçevesini genişletilebilir bir geri bildirim sağlayıcısıyla değiştirir.
    • Bu özellik, geri bildirim iletilerinin biçimlendirmesini değiştirmenize $PSStyle.Formatting olanak sağlayan FeedbackName, FeedbackText ve FeedbackAction özelliklerini de ekler.
  • PSModuleAutoLoadSkipOfflineFiles - Modül bulma artık bulut sağlayıcıları tarafından diskte tam olarak işaretlenmemiş olarak işaretlenmiş dosyaları atlıyor.
  • PSCommandWithArgs - Bağımsız değişkenleri komutlara tek bir dize olarak geçirme desteği ekleme

Aşağıdaki deneysel özellikler temel bir hal aldı:

PowerShell 7.4 aşağıdaki deneysel özellikleri değiştirdi:

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