Aracılığıyla paylaş


PowerShell 7.4'teki Yenilikler

PowerShell 7.4.7 aşağıdaki özellikleri, güncelleştirmeleri ve uyumsuzluk yaratan değişiklikleri içerir. PowerShell 7.4.7, .NET 8.0.12 üzerine kurulmuştur.

Değişikliklerin tam listesi için GitHub deposundaki CHANGELOG bakın.

Uyumsuzluk yaratan 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 (#19215) ArgumentNullException yerine ArgumentException oluşturacak şekilde bazı PowerShell API'lerini güncelleştirin (Teşekkürler @xtqqczze!)
  • #Requires -PSSnapin ile ilgili kodu kaldırma (#19320)
  • Test-Json artık Newtonsoft.Json.Schema yerine JsonSchema.NET kullanıyor.
    • Bu değişiklikle Test-Json artık eski Taslak 4 şemalarını desteklemez. (#18141) (teşekkürler @gregsdennis!). JSON şemaları hakkında daha fazla bilgi için JSON Şeması belgelerine bakın. Bu ayrıca, yorum içeren JSON ve JSONC dosyaları için Test-Json'ı bozar.
    • ConvertFrom-Json desteği hala Newtonsoft.Json.Schema kullanır, böylece JSON dosyalarını açıklamalarla dönüştürebilir.
  • Test-Connection çıktısı artık TCP bağlantı testleri hakkında daha ayrıntılı bilgi içeriyor
  • .NET, Test-Connection'ı etkileyen değişiklikleri tanıttı. Cmdlet artık özel bir arabellek boyutu (sudo) kullanırken Linux platformlarında kullanma gereksinimiyle ilgili bir hata mesajı döndürüyor.
  • Deneysel özellik PSNativeCommandPreserveBytePipe artık ana akım haline geldi. PowerShell artık yerel bir komutun stdout akışını bir dosyaya yönlendirirken veya bayt akışı verilerini yerel komutun stdin akışına yönlendirirken bayt akışı verilerini korur.
  • Resolve-Path parametresi (#19755) kullanılırken, göreli yolların nasıl işlendiğini değiştirme (Teşekkürler @MartinGC94!))
  • Kullanılmayan PSv2 kodunu kaldır - 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 yan yana yüklenir. Daha fazla bilgi için Microsoft.PowerShell.PSResourceGetbelgelerine bakın.

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

Sekme tamamlama geliştirmeleri

Sekme tamamlanmasını iyileştirmeye yönelik tüm çalışmaları için @MartinGC94 ve diğerlerine büyük teşekkürler.

  • Betikteki ilk komutu boş bir dizi ifadesiyle (#18355) tamamlarken oluşan sorun düzeltildi
  • Konum bağımsız değişken tamamlamasını düzelt (#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)
  • Hash tablosu anahtarlarının tür çıkarımını iyileştirin (#17907)
  • Boş dönüş ifadeleri için tür çıkarımı hatası düzeltilir (#18351)
  • Get-Random için tür çıkarımı geliştirin (#18972)
  • Tüm kapsam değişkenleri için tür çıkarımı düzeltilir (#18758)
  • İşlem hattında çıkarılan türlerin listesini iyileştirin (#17799)
  • Enum'ları karşılaştırırken, karşılaştırmalar için değer tamamlama ekleyin (#17654)
  • Enumlar için özellik ataması tamamlaması eklemesi (#19178)
  • PSCustomObject değişken özellikleri (#18682) için tamamlama düzeltmesi
  • Öznitelik bağımsız değişkeninde üye tamamlamasını düzeltme (#17902)
  • Gereksiz parametre takma adlarını tamamlama listelerinden dışla (#19382)
  • Temel türleri (#19179) olan sınıflar için sınıf üyesi tamamlama düzeltmesi
  • using anahtar sözcüğü 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ştirin (#19819)
  • foreach deyimi değişkeninin (#19814) tamamlanması düzeltilir
  • Değişken türü çıkarım önceliği düzeltme (#18691)
  • PowerShell Enum sınıfı için üye tamamlamayı düzeltme (#19740)
  • Yöntem çağrılarında dizin ifadelerindeki dizi literalleri için ayrıştırma düzeltildi (#19224)
  • Yol Tamamlamayı Geliştirme (#19489)
  • Boş betik girdisi için CompleteInput'taki dizin sınır hatasını düzeltin (#19501)
  • Değişken tamamlama performansını geliştirme (#19595)
  • Tür kısıtlı değişken atamaları, iç içe karma tablolar ve daha fazlası için karma tablo anahtar tamamlamasını geliştirme (#17660)
  • Dış uygulama çıktısını dizge olarak yorumla (#19193)
  • ValidateRange özellikleri tarafından izin verilmeyen değerleri dışlamak için enum parametre tamamlamasını güncelleyin (#17750) (Teşekkürler @fflaten!).
  • Dinamik parametre tamamlamayı düzeltme (#19510)
  • data deyimi tarafından atanan değişkenler için tamamlamayı ekleyin (#19831)
  • Yerel komutlarla kullanımı bozabilecek durumları önlemek için, Windows sistemlerinde tilde (~) genişlemesini $HOME olarak değiştirin (#21529).

Web cmdlet geliştirmeleri

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

  • Web cmdlet'lerinde Brotli (#17955) içerecek şekilde sıkıştırmayı çözme (Teşekkürler @iSazonov!)
  • Webcmdlet'ler 308'u yeniden yönlendirme kodlarına ve küçük temizlemeye ekler (#18536)
  • İndirme tamamlandığında veya iptal edildiğinde Invoke-WebRequest ilerleme çubuğunun görüntülenmesini tamamlayın (#18130)
  • Eğer durum kodu 429 (#18717) ise, yanıt başlıklarından Retry-After aralığı Web cmdlet'leri tarafından alınır.
  • Web cmdlet'leri varsayılan karakter kümesi kodlamasını UTF8 (#18219) olarak ayarlar
  • Değişikliklerden WebSession.MaximumRedirection öğesini koruyun (#19190)
  • WebCmdlet'leri, varsa kodlama değerini almak için XML bildirimini ayrıştırıyor. (#18748)
  • Xml -Body'nin webcmdlet'lerde kodlama olmadan kullanılmasını düzeltin (#19281)
  • WebCmdlet'lerinde varsayılan içerik türü için PUT yöntemi davranışını POST olarak ayarlayın (#19152)
  • WebCmdlet'lerdeki Başlıklardan 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 yönlendirme (#18595) üzerinde bir hata görüntülüyor
  • AllowInsecureRedirect Web cmdlet'lerine geçiş ekleme (#18546)
  • İçerik uzunluğu bilinmediğinde web cmdlet'lerinde ayrıntılı iletiyi geliştirin (#19252)
  • Invoke-WebRequest yanıttaki bağlantılar için göreli URI oluşturun (#19092)
  • WebCmdlet'lerinde -CustomMethod POST yeniden yönlendirmeyi düzeltin (#19111)
  • Önceki yanıtı Webcmdlet'lerde sil (#19117)
  • Invoke-WebRequest xml ve json hataları biçimini geliştirin (#18837)
  • WebCmdlet'lerinin OutFile ve InFile parametrelerine ValidateNotNullOrEmpty ekleyin (#19044)
  • HttpKnownHeaderNames üst bilgi listesini güncelle (#18947)
  • virgül içeren bağlantıları Invoke-RestMethod -FollowRelLink düzeltme (#18829)
  • Web cmdlet'lerinde yeniden yönlendirmeyi ve KeepAuthorization'ı yönetme (#18902) ile ilgili hata düzeltildi
  • StatusCode 'i HttpResponseException 'e ekle (#18842)
  • Web Cmdlet'lerinde HTTP kalıcı bağlantılarını destekleme (#19249) (Teşekkürler @stevenebutler!)
  • Küçük temizlik Invoke-RestMethod (#19490)
  • WebCmdlet'lerinin ayrıntılı iletisini doğru HTTP sürümünü gösterecek şekilde geliştirin (#19616)
  • WebCmdlets içinde MultipartFileContent'e FileNameStar ekleyin (#19467)
  • "Retry-After üst bilgisinden yeniden deneme aralığını almak için WebCmdlet'ler için HTTP durum kodunu 409'dan 429'a düzeltin." (#19622) (Teşekkürler @mkht!)
  • -TimeoutSec -ConnectionTimeoutSeconds olarak değiştirin ve web cmdlet'lerine (-OperationTimeoutSeconds) ekleyin (Teşekkürler @stevenebutler!) Diğer cmdlet'ler
  • WebCmdlet'lerinde veri okunurken bağlantı kilitlendiğinde Ctrl+c tuşlarına basın (#19330) (Teşekkürler @stevenebutler!)
  • WebCmdlet'lerinde Unix etki alanı yuvasını destekleme (#19343)

Diğer cmdlet iyileştirmeleri

  • Test-Connection artık özel arabellek boyutu kullanırken Linux platformlarında sudo kullanma gereksinimiyle ilgili hata döndürüyor (#20369)
  • Biçim komutlarına çıkış türleri ekleme (#18746) (Teşekkürler @MartinGC94!)
  • Get-WinEvent (#17948) için çıkış türü öznitelikleri ekleme (Teşekkürler @MartinGC94!)
  • Yol ve LiteralYol parametrelerini Test-Json cmdlet'ine (#19042) ekleyin (Teşekkürler @ArmaanMcleod!)
  • ve ConvertTo-Csv cmdlet'lerine (Export-Csv) NoHeader parametresi ekleyin (Teşekkürler @ArmaanMcleod!)
  • Onayla ve WhatIf parametrelerini ekleyin Stop-Transcript(#18731) (Teşekkürler @JohnLBevan!)
  • Get-Command parametresini ekleyin (#18261)
  • Kodlama parametresinin PowerShell'de ANSI kodlamayı alabilmesini sağla (Teşekkürler ) (@CarloToso!))
  • Copy-Item ilerleme ekle (#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 gerektirmeyin (#18474) (Teşekkürler @MartinGC94!)
  • Get-Content ve -Head (-Tail) cmdlet parametreleri için negatif değerlere izin verme (Teşekkürler @CarloToso!)
  • Geçerli kültür bir dille ilişkilendirilmediğinde Update-Help'ın doğru bir hata oluşturması sağlanmalı (#19765) (Teşekkürler @josea!))
  • -Skip ve -SkipLast parametrelerinin Select-Object cmdlet'inde birleştirilmesine izin verin. (#18849) (Teşekkürler @ArmaanMcleod!)
  • Get-SecureRandom cmdlet ekle (#19587)
  • Uzaktan kullanım için Set-Clipboard -AsOSC52 (#18222) (Teşekkürler @dkaszews!)
  • Göreli yol çözümlemeyi Resolve-Path hızlandırın (#19171) (Teşekkürler @MartinGC94!))
  • -CaseInsensitive parametresi Select-Object ve Get-Unique cmdlet'lerine eklendi (#19683) (Teşekkürler @ArmaanMcleod!))
  • unix üzerinde sudo ile çalışmadığında Restart-Computer ve Stop-Computer hatayla başarısız olmalıdır (#19824)

Motor geliştirmeleri

$PSStyle güncelleştirmeleri

  • Dim ve DimOff özelliklerini ekler (#18653)
  • PSStyle sınıfına, ön plan ve arka plan ConsoleColor değerlerini ANSI kaçış dizileriyle eşleştiren statik yöntemler eklendi (#17938)
  • Hesaplanmış alanlar için tablo üst bilgileri varsayılan olarak italik olarak biçimlendirilir
  • Uzak ana bilgisayarda $PSStyle.OutputRendering'ya saygı gösterilmesini sağlama desteğini ekleyin (#19601)
  • Telemetri verileri, CrescendoBuilt modüllerinin kullanımını içerecek şekilde güncelleştirildi (#20371)

Diğer Altyapı güncelleştirmeleri

  • NoRunspaceAffinity özniteliğini (#18138) bildirirken PowerShell sınıfının Runspace ile ilişkili olmamasını sağlayın
  • ValidateNotNullOrWhiteSpace özniteliğini ekleyin (#17191) (Teşekkürler @wmentha!)
  • Eski bağımsız değişken iletimi için listeye sqlcmd ekleyin (#18559)
  • İşlev cd~ (#18308) ekleyin (Teşekkürler @GigaScratch!)
  • Genel türlerde (#19205) dizi türü ayrıştırma düzeltmesi (Teşekkürler @MartinGC94!)
  • Cihaz yollarının kökünde joker karakterlerle 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üşümüne 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!)
  • #Requires -PSSnapin ile ilgili kodu kaldırma (#19320)

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 olanak sağlayan FeedbackName, FeedbackTextve FeedbackAction özelliklerini de $PSStyle.Formatting ekler.
  • PSModuleAutoLoadSkipOfflineFiles - Modül bulma artık bulut sağlayıcıları tarafından diskte tam bulunmayan olarak işaretlenmiş dosyaları atlıyor.
  • PSCommandWithArgs - Komutlara argümanları tek bir dize olarak geçirme desteği eklendi

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.