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
artık 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. Bu, açıklama içeren JSON ve JSONC dosyaları için de kesintiye neden olurTest-Json
. ConvertFrom-Json
desteği hala Newtonsoft.Json.Schema kullanır, böylece JSON dosyalarını açıklamalarla dönüştürebilir.
- Bu değişiklikle,
- Ş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)
- Yerel komutlarla hataya neden olan kullanım örneklerini önlemek için
$home
Windows sistemlerinde tilde~
() genişletilmesi düzeltilir (#21529)
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 kullanmasudo
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'lerineConvertTo-Csv
NoHeader parametresi ekleme (#19108) (Teşekkürler@ArmaanMcleod!) - (#18731) öğesine
Stop-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çinGet-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ürlerGet-Unique
@ArmaanMcleod!) Restart-Computer
veStop-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.
- Bu özellik, geri bildirim iletilerinin biçimlendirmesini değiştirmenize
- 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ı:
- PSConstrainedAuditLogging
- PSCustomTableHeaderLabelDecoration
- PSNativeCommandErrorActionPreference
- PSNativeCommandPreserveBytePipe
- PSWindowsNativeCommandArgPassing
PowerShell 7.4 aşağıdaki deneysel özellikleri değiştirdi:
- PSCommandNotFoundSuggestion - Bu özellik artık sabit kodlanmış öneriler yerine genişletilebilir bir geri bildirim sağlayıcısı kullanıyor (#18726)
Deneysel Özellikler hakkında daha fazla bilgi için bkz . Deneysel Özellikleri Kullanma.
PowerShell