Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PowerShell 7.5.6 aşağıdaki özellikleri, güncellemeleri ve uyumsuzluk yaratan değişiklikleri içerir. PowerShell 7.5.6, .NET 9.0.15 çalışma zamanı üzerinde oluşturulur.
Değişikliklerin tam listesi için GitHub deposunda CHANGELOG bölümüne bakın. .NET 9 hakkında daha fazla bilgi için bkz. .NET 9'daki yenilikler.
Kırıcı Değişiklikler
için ve parametrelerini, ve tarih aralığı ( #20942 ) kullanırken düzelt (Teşekkürler- Birlikte belirtilirse daha önce
-OlderThanyoksayılırdı
- Birlikte belirtilirse daha önce
- Varsayılan değeri 2 olarak değiştir
New-FileCatalog -CatalogVersion(#20428) (Teşekkürler @ThomasNieto!) - Kısıtlı uzaktan iletişim oturumlarında ağ konumlarından yardım almayı engelleme (#20593)
- Windows yükleyicisi artık kullanılan yükleme seçeneklerini anımsar ve bunları bir sonraki yükleme için seçenekleri başlatmak için kullanır (#20420) (Teşekkürler @reduckted!)
-
ConvertTo-JsonşimdiBigIntegersayı olarak seri hale geliyor (#21000) (Teşekkürler @jborean93!)
Güncelleştirilmiş modüller
PowerShell 7.5.6 aşağıdaki güncelleştirilmiş modülleri içerir:
- Microsoft. PowerShell.PSResourceGet v1.1.1
- PSReadLine v2.3.6
Sekme tamamlama geliştirmeleri
Sekmenin tamamlanmasını iyileştirmeye yönelik tüm çalışmaları için @ArmaanMcleod ve diğer kişilere çok teşekkür ederiz.
- Hashtable anahtar-değeri güvenli ifadeden alınamadığında tür çıkarımına geri dönün (#21184) (Teşekkürler @MartinGC94!)
- (
$_) için tür çıkarımı yaparken regresyon düzeltin (Teşekkürler@MartinGC94!) - Windows'da sekme tamamlama ile
~öğesini$HOMEolarak genişletme (#21529) - Parametre adı ve sınıf üyesi bildirildiğinde otomatik tamamlamayı yapmayın (#21182) (Teşekkürler @MartinGC94!))
- Sekme ile tür adlarını tamamlarken dosya tamamlamaya geri dönüşü engelle (#20084) (Teşekkürler @MartinGC94)
-
-Version'ye,Set-StrictModeiçin bağımsız değişken tamamlayıcı ekleme (#20554) (Teşekkürler @ArmaanMcleod!)) -
-Verbbağımsız değişken tamlayıcıGet-Verb/Get-Commandiçin ekleyin veGet-Verb'u yeniden düzenleyin (#20286) (Teşekkürler @ArmaanMcleod)) - (
-Verb) içinStart-Processbağımsız değişken tamlayıcı ekleme (Teşekkürler@ArmaanMcleod) - için bağımsız değişken tamlayıcı ekleme
-Scope,*-Variable&*-Aliaskomutları (*-PSDrive) (Teşekkürler @ArmaanMcleod) -
-Moduletamamlaması ekleSave-Help/Update-Helpkomutları için (#20678) (Teşekkürler @ArmaanMcleod))
Yeni cmdlet’ler
- Add
ConvertTo-CliXmlveConvertFrom-CliXmlcmdlet'leri ekle (#21063) (Teşekkürler @ArmaanMcleod!)
Web cmdlet'lerindeki geliştirmeler
-
-PassThruve-Outfileöğelerinin birlikte çalışabilmesi için yapılan düzeltme (#24086) - 'de
OutFileözellik eklemeWebResponseObject(#24047) - Dosya adını göster (
Invoke-WebRequest -OutFile -Verbose#24041) - WebCmdlet'lerin
-Bodybelirtildiğinde ancakContentTypebelirtilmediğinde düzeltilmesi (#23952) (Teşekkürler @CarloToso!)) - Belirtildiğinde doğru boyutu bildirme düzeltmesi
Invoke-WebRequest(-Resume) (Teşekkürler @LNKLEO!) - Uygulamaların düzgün çalışmasına izin vermek
WinFormiçin Web Cmdlet'lerini düzeltme (#20606)
Diğer cmdlet iyileştirmeleri
-
MaxVisitCountveMaxHashtableKeyCount,VisitorSafeValueContextSkipLimitCheckiçin doğruysaImport-PowerShellDataFilegüncelleştirin. - Alt ssh işlemi oluşturulduktan sonra kanal istemci tanıtıcılarını kapatma (#26822)
- Betik cmdlet'lerinde ilerleme tercih değişkenini düzeltme (#26791) (Teşekkürler @cmkb3!)
- Özel bir uygulamayla eski
Out-GridViewkullanımı değiştirerekBinaryFormatterdüzenleyin (#25559) -
-NoRestart'iRegister-PSSessionConfigurationile çalışmak için etkinleştir (#23891) -
IgnoreCommentscmdlet'ineAllowTrailingCommasveTest-Jsonseçeneklerini ekle (#23817) (Teşekkürler @ArmaanMcleod!) - Get-Help, özniteliğe sahip
ValueFromRemainingArgumentsparametreleri işlem hattına alınabilir olarak bildirebilir (#23871) - "
LineNumbertürünüulong'deSelect-Stringolarak değiştirin (#24075) (Teşekkürler @Snowman-25!)" -
Get-Process: (-IncludeUserName) için yönetici gereksinimini kaldırın (Teşekkürler@jborean93!) - Geçersiz yol ve dosya adı karakterlerini kontrol etmek için düzeltme
Test-Path -IsValid(#21358) - Hata raporlamasına
RecommendedAction'eConciseViewekleyin (#20826) (Teşekkürler @JustinGrote!)) - cmdlet için
Remove-Itemilerleme çubuğu eklendi (#20778) (Teşekkürler @ArmaanMcleod!) - Düzelt
Test-Connection, .NET 8 değişiklikleri nedeniyle (#20369) - Sonlandırılmayan hata iletisini kategori içerecek şekilde düzeltme
Get-Service(#20276) -
-Emptyve-InputObjectparametreleriniNew-Guidöğesine ekleyin (#20014) (Teşekkürler @CarloToso!)) - Komutun parametresine
r-Recursediğer adıGet-ChildItemekleyin (#20100) (Teşekkürler@kilasuit!) - Fonksiyonlar için eksik olan diğer adlara
LP'yuLiteralPatholarak ekle (#20820) - "
Import-LocalizedDataiçin örtük yerelleştirme geri dönüşü ekle (#19896) (Teşekkürler @chrisdent-de!)" - Yardım içeriği biçimlendirilirken
Aliasestarafından döndürülen parametrenin gösterilen özelliklerineGet-Helpekleyin (#20994). -
HelpUriRemove-Serviceekle (#20476) - SCCM sağlayıcısı için tamamlama çökmesi düzeltildi (#20815, #20919, #20915) (Teşekkürler @MartinGC94!))
-
Get-Contentiçindeki regresyonu,-Tail 0ve-Waitbirlikte kullanıldığında düzeltin (#20734) (Teşekkürler @CarloToso!) - Döndürülen
Start-Process -PassThrunesne için özelliğinExitCodeerişilebilir olduğundan emin olmak için düzeltmeProcess(#20749) (Teşekkürler@CodeCyclone!) -
Group-Objectüzerinde çıkışı için geçerli kültürü kullanacak şekilde düzeltme yap (#20608) - Interpolasyonlu dizeler kullanarak
Group-Objectçıktısını düzelt (#20745) (Teşekkürler - Ağ
DisplayRootiçinPSDriveişleme düzeltmesi (#20793) - İlerleme durumunu yalnızca tüm dosyalar kopyalandığında gösterilecek şekilde düzeltildi
Copy-Item(#20517) - UNC yolu tamamlama regresyonu düzeltin (#20419) (Teşekkürler @MartinGC94!)
- Geçersiz
-ExecutionPolicypwsh'ye geçirildiyse hata bildir (#20460 ) - Kullanımı izlemek için WinGetCommandNotFound ve CompletionPredictor modülleri ekleme (#21040)
- (#20925) öğesine
ConvertFrom-JsonDateKind parametresi ekleme (Teşekkürler@jborean93!) - New-Item için OutputType'a DirectoryInfo ekleme (#21126) (Teşekkürler @MartinGC94!)
- Dizi değerlerinin serileştirmesini düzeltme
Get-Error(#21085) (Teşekkürler @jborean93!) - UNC yolunu kullanabilmesi için düzeltme
Test-ModuleManifest(#24115) -
Get-TypeData'ı önce veri toplamadan hemen işlem hattına yazacak şekilde düzeltin (#24236) (Teşekkürler @MartinGC94) -
-ForceveResolve-Pathcmdlet'lerine joker karakter gizli dosyalarını desteklemek içinConvert-Pathparametresini ekle #20981 (Teşekkürler @ArmaanMcleod!)). - (
-NoNewWindow) ile işlem başlatırken standart tanıtıcıları açıkça ayarlayın - Devralınan korumalı iç örnek üyelerini sınıf kapsamında erişilebilir hale getirin. (#25547) (Teşekkürler @mawosoft!)
- Eski belirsiz öneriyi kaldırın ve yerel betik dosyası adı önerisini düzeltin (#25330)
- Düzeltme
PSMethodInvocationConstraints.GetHashCodeyöntemi (#25306) (Teşekkürler @crazyjncsu!)
Motor geliştirmeleri
- PATH'de ssh yürütülebilir dosyasını bulma mantığını düzeltme (#26165) (Teşekkürler @jborean93!)
- .NET yöntemi çağrı günlüğünü, yöntem bağımsız değişkenleri için gerekli tür dönüşümü yapıldıktan sonra taşıyın (#25357)
- AppLocker'dan sonra
WldpCanExecuteFilegeri dönme (#25305) - ANSI Hata Rengi'ni açıkça başlatma ve durdurma (#24065) (Teşekkürler @JustinGrote!)
- Genel yöntemlerin .NET aşırı yükleme tanımını geliştirme (#21326) (Teşekkürler @jborean93!)
-
+=Bir nesne dizisi olduğunda bir koleksiyon için işlemi iyileştirme (#23901) (Teşekkürler@jborean93!) - Modülü içeri aktarırken belirli etiketleri denetlemek için telemetri ekleme (#20371)
- Modül yükleme telemetri izin listesine
PSAdapterveConsoleGuiToolsekle (#20641) - Kullanımı izlemek için WinGet modülü ekleme (#21040)
- WDAC ETW olayları günlüğe yazılırken dosya adının null olmadığından emin olun (#20910) (Teşekkürler @jborean93!)
- WDAC günlük özelliği tarafından getirilen dört regresyonu düzeltin (#20913)
- Giriş, çıkış ve hata tanıtıcıları yeniden yönlendirilmediğinde varsayılan bırakın (#20853)
- Ortak parametreler üzerinde işlem yapmak için örtük uzaktan kumanda vekil cmdlet'lerini düzeltme (#20367)
- Modül bulunamadığında modül sürümünü hata iletilerine ekleyin (#20144) (Teşekkürler @ArmaanMcleod!)
-
unixmode, dosya yürütülebilir bir dosya olmadığındasetuidvestickyişleyecek şekilde düzeltin (#20366) - Derleme yolları oluştururken Path.Combine kullanmak için derleme kullanma sorunu düzeltildi (#21169)
- Geçersiz ad alanlarının bildirilmesini önlemek için anlam denetimleri sırasında ad alanını kullanma değerini doğrulayın (#21162)
- PATH'e
$PSHOMEbaştan ekleme sırasında küresel aracı özel olarak ele almak (#24228) - Tüm paketlerin kullanılabilir olmasını sağlamak için güncelleştirme bildirimini bir hafta geciktirme (#27220)
Deneysel özellikler
Aşağıdaki deneysel özellikler PowerShell 7.5-rc.1'deki temel özelliklere dönüştürüldü:
- PSCommandNotFoundSuggestion
- PSCommandWithArgs
- PSModuleAutoLoadSkipOfflineFiles (Çevrimdışı dosyaları atla seçeneği)
Aşağıdaki deneysel özellikler PowerShell 7.5-rc.1'e dahildir:
- PSRedirectToVariable - Bir değişkene yeniden yönlendirmeye izin ver (#20381)
- PSNativeWindowsTildeExpansion - Windows'a özel yürütülebilir dosyalar için tilde genişletmesi ekleme (#20402) (Teşekkürler @domsleee!)
-
PSSerializeJSONLongEnumAsNumber -
ConvertTo-Jsonşimdi büyük sabit listeleri sayı olarak kabul ediyor (#20999) (Teşekkürler @jborean93!)
Performans iyileştirmeleri
PowerShell 7.5-rc.1, bir nesne dizisi için işlemin performansını geliştiren @jborean93+= içerir.
Aşağıdaki örnek, bir diziye öğe eklemenin farklı yöntemlerinin performansını ölçer.
$tests = @{
'Direct Assignment' = {
param($count)
$result = foreach($i in 1..$count) {
$i
}
}
'List<T>.Add(T)' = {
param($count)
$result = [Collections.Generic.List[int]]::new()
foreach($i in 1..$count) {
$result.Add($i)
}
}
'Array+= Operator' = {
param($count)
$result = @()
foreach($i in 1..$count) {
$result += $i
}
}
}
5kb, 10kb | ForEach-Object {
$groupResult = foreach($test in $tests.GetEnumerator()) {
$ms = (Measure-Command { & $test.Value -Count $_ }).TotalMilliseconds
[pscustomobject]@{
CollectionSize = $_
Test = $test.Key
TotalMilliseconds = [Math]::Round($ms, 2)
}
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
}
$groupResult = $groupResult | Sort-Object TotalMilliseconds
$groupResult | Select-Object *, @{
Name = 'RelativeSpeed'
Expression = {
$relativeSpeed = $_.TotalMilliseconds / $groupResult[0].TotalMilliseconds
$speed = [Math]::Round($relativeSpeed, 2).ToString() + 'x'
if ($speed -eq '1x') { $speed } else { $speed + ' slower' }
}
} | Format-Table -AutoSize
}
Betiği PowerShell 7.4.6'da çalıştırdığınızda, += işlecini kullanmanın en yavaş yöntem olduğunu görürsünüz.
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
5120 Direct Assignment 4.17 1x
5120 List<T>.Add(T) 90.79 21.77x slower
5120 Array+= Operator 342.58 82.15x slower
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
10240 Direct Assignment 0.64 1x
10240 List<T>.Add(T) 184.10 287.66x slower
10240 Array+= Operator 1668.13 2606.45x slower
Betiği PowerShell 7.5-rc.1'de çalıştırdığınızda, += işlecini kullanmanın PowerShell 7.4.6'dan çok daha hızlı olduğunu görürsünüz. Artık List<T>.Add(T) yöntemini kullanmaktan da daha hızlıdır.
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
5120 Direct Assignment 4.71 1x
5120 Array+= Operator 40.42 8.58x slower
5120 List<T>.Add(T) 92.17 19.57x slower
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
10240 Direct Assignment 1.76 1x
10240 Array+= Operator 104.73 59.51x slower
10240 List<T>.Add(T) 173.00 98.3x slower
PowerShell