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.0 aşağıdaki özellikleri, güncelleştirmeleri ve önemli değişiklikleri içerir. PowerShell 7.5, .NET 9.0.1 GA sürümü üzerine kurulmuştur.
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][07].
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
-OlderThan
yoksayı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
BigInteger
şimdi bir sayı olarak serileştirilir (#21000) (Teşekkürler @jborean93!) - .NET 9,
BinaryFormatter
cmdlet'inde regresyona neden olanOut-GridView
uygulamasını kaldırdı.Out-GridView
arama özelliği PowerShell 7.5'te çalışmaz. Bu sorun, Sorun #24749içinde izlenir.
Güncelleştirilmiş modüller
PowerShell 7.5.0 aşağıdaki güncelleştirilmiş modülleri içerir:
- Microsoft.PowerShell.PSResourceGet v1.1.0
- 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 (#21184) (Teşekkürler @MartinGC94!)
- (#21223) için
$_
tür çıkarımı yaparken regresyon düzeltin (Teşekkürler@MartinGC94!) - Sekme tamamlama ile
~
'yi Windows'da$HOME
olarak genişlet (#21529) - Parametre adı ve sınıf üyesi bildirilirken tamamlanmıyor (#21182) (Teşekkürler @MartinGC94!)
- Sekme tuşu ile tür adlarını tamamlarken dosya tamamlamaya dönüşü engelle (#20084) (Teşekkürler @MartinGC94)
-
-Version
içinSet-StrictMode
bağımsız değişken tamlayıcı ekle (#20554) (Teşekkürler @ArmaanMcleod!)) -
-Verb
Get-Verb
/ için bağımsız değişken tamlayıcı ekleyin veGet-Verb
öğesini yeniden düzenleyin (#20286) (Teşekkürler @ArmaanMcleod)) -
-Verb
içinStart-Process
bağımsız değişken tamlayıcı ekleyin (#20415) (Teşekkürler @ArmaanMcleod)) - için bağımsız değişken tamlayıcı ekleme
-Scope
,*-Variable
&*-Alias
komutları (*-PSDrive
) (Teşekkürler @ArmaanMcleod) - Komutlar için
-Module
Save-Help
/Update-Help
tamamlama ekleme (#20678) (Teşekkürler @ArmaanMcleod))
Yeni cmdlet’ler
-
ConvertTo-CliXml
veConvertFrom-CliXml
cmdlet'leri ekle (#21063) (Teşekkürler @ArmaanMcleod!))
Web cmdlet'lerindeki geliştirmeler
-
-PassThru
ve-Outfile
birlikte çalışmasına izin vermek için düzeltme (#24086) -
OutFile
'daWebResponseObject
özelliği ekleme (#24047) - dosya adını,
Invoke-WebRequest -OutFile -Verbose
'da göster (#24041) -
-Body
belirtildiğinde ancakContentType
belirtilmediğinde WebCmdlet'leri düzeltildi (#23952) (Teşekkürler @CarloToso!)) -
-Resume
belirtildiğindeInvoke-WebRequest
'un doğru boyutu bildirmesi için düzeltme yapıldı (#20207) (Teşekkürler@LNKLEO!) - Web Cmdlet'leri düzeltip
WinForm
uygulamaların düzgün çalışmasını sağla (#20606)
Diğer cmdlet iyileştirmeleri
- Etkinleştir
-NoRestart
,Register-PSSessionConfiguration
ile çalışmak için (#23891) -
Test-Json
cmdlet'ineIgnoreComments
veAllowTrailingCommas
seçeneklerini ekleme (#23817) (Teşekkürler @ArmaanMcleod!) - Get-Help,
ValueFromRemainingArguments
özelliği olan parametreleri işlem hattında kullanılabilir olarak bildirebilir (#23871) -
LineNumber
türünüSelect-String
içindeulong
olarak değiştirin (#24075) (Teşekkürler @Snowman-25!)) -
Get-Process
:-IncludeUserName
için yönetici gereksinimi kaldırıldı (#21302) (Teşekkürler @jborean93!)) - Geçersiz yol ve dosya adı karakterlerini kontrol eden bir düzeltme yapın
Test-Path -IsValid
(#21358) - Hata raporlamasına
RecommendedAction
eklemeConciseView
(#20826) (Teşekkürler@JustinGrote!) - cmdlet için
Remove-Item
ilerleme çubuğu eklendi (#20778) (Teşekkürler @ArmaanMcleod!) - .NET 8 değişiklikleri nedeniyle
Test-Connection
düzeltildi (#20369) - Sonlandırılmayan hata iletisini kategori içerecek şekilde düzeltme
Get-Service
(#20276) -
-Empty
ve-InputObject
parametreleriniNew-Guid
'ye ekle (#20014) (Teşekkürler @CarloToso!)) - Parametre
-Recurse
içinGet-ChildItem
komutunar
diğer adını ekleyin (#20100) (Teşekkürler @kilasuit!)) - Eksik olan işlevlerin diğer adlarına
LP
ekleyinLiteralPath
(#20820) -
Import-LocalizedData
içine örtük yerelleştirme geri dönüşü ekleme (#19896) (Teşekkürler @chrisdent-de!)) - Tarafından
Aliases
döndürülen parametrenin yardım içeriğini biçimlendirirken gösterilen özelliklere ekleyinGet-Help
(#20994) -
HelpUri
öğesiniRemove-Service
(#20476) ekle - SCCM sağlayıcısı için tamamlama çökmesi düzeltildi (#20815, #20919, #20915) (Teşekkürler @MartinGC94!))
-
Get-Content
içindeki gerilemeyi,-Tail 0
ve-Wait
birlikte kullanıldığında düzeltin (#20734) (Teşekkürler @CarloToso!) -
Start-Process -PassThru
için düzeltme yap, böylece döndürülenProcess
nesnesininExitCode
özelliğine erişilebilir olsun (#20749) (Teşekkürler @CodeCyclone!)) -
Group-Object
üzerinde çıkışı için geçerli kültürü kullanacak şekilde düzeltme yap (#20608) - İnterpolasyon dizelerini kullanarak
Group-Object
çıktısını düzeltme (#20745) (Teşekkürler @mawosoft!) - Ağ için
DisplayRoot
işleme düzeltmesiPSDrive
(#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
-ExecutionPolicy
pwsh
'ye geçirildiyse hata bildir (#20460 ) - Kullanımı izlemek için WinGetCommandNotFound ve CompletionPredictor modülleri ekleme (#21040)
-
DateKind parametresini
ConvertFrom-Json
ekleyin (#20925) (Teşekkürler @jborean93!)) - DirectoryInfo'yu OutputType'a New-Item için ekle (#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) - önce veri toplamak yerine işlem hattına hemen yazma düzeltmesi
Get-TypeData
(#24236) (Teşekkürler @MartinGC94) - Joker karakter gizli dosyalarını desteklemek için
Resolve-Path
veConvert-Path
cmdlet'lerine-Force
parametresi ekleyin #20981 (Teşekkürler @ArmaanMcleod!))
Motor geliştirmeleri
- 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)
- Add
PSAdapter
veConsoleGuiTools
modül yükleme telemetrisi izin listesine (#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 tanıtılan dört regresyon düzeltildi (#20913)
- Giriş, çıkış ve hata tanıtıcılarını yönlendirilmedikleri zaman boş bırakın (#20853)
- Ortak parametreler üzerinde işlem yapacak şekilde gizli uzaktan iletişim proxy cmdlet'lerini düzeltme (#20367)
- Modül bulunamadığında modül sürümünü hata iletilerine ekleyin (#20144) (Teşekkürler @ArmaanMcleod!)
- Dosya yürütülebilir olmadığında
unixmode
,setuid
vesticky
işlemek için düzeltin ( #20366). - Derleme yolları oluşturulurken Path.Combine kullanılmasını sağlamak için derleme kullanımı 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
$PSHOME
eklerken genel aracı özel olarak ele al (#24228)
Deneysel özellikler
Aşağıdaki deneysel özellikler PowerShell 7.5-rc.1'deki temel özelliklere dönüştürüldü:
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
artık büyük sabit listelerini sayı olarak kabul ediyor (#20999) (Teşekkürler@jborean93!)
Performans iyileştirmeleri
PowerShell 7.5-rc.1, PR#23901 içeren ve bir nesne dizisi için @jborean93 işleminin performansını geliştiren +=
içermektedir.
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
[07]: /dotnet/core/whats-new/dotnet-9/overview)
PowerShell