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.
11 Kasım 2020'de PowerShell 7.1'in genel kullanıma sunulduğunu duyurduk . PowerShell 7.0'da kurulan temel üzerine inşa edilen çabalarımız topluluk sorunlarına odaklandı ve birçok iyileştirme ve düzeltme içeriyordu. PowerShell'in istikrarlı ve performanslı bir platform olarak kalmasını sağlamaya kararlıyız.
PowerShell 7.1 aşağıdaki özellikleri, güncellemeleri ve son değişiklikleri içerir.
- PSReadLine 2.1.0, Predictive IntelliSense'i de içerir
- PowerShell 7.1 Microsoft Store'da yayınlandı
- ARM64 desteğiyle yeni işletim sistemi sürümleri için güncellenen kurulum paketleri
- 4 yeni deneysel özellik ve 2 deneysel özellik ana akıma tanıtıldı
- Kullanılabilirliği artırmak için birkaç önemli değişiklik
Değişikliklerin tam listesi için GitHub deposunda CHANGELOG bölümüne bakın.
PSReadLine 2.1.0
PowerShell 7.1 ayrıca PSReadLine 2.1.0 da içerir. Bu sürümde Predictive IntelliSense (Tahmin Edici Zeki) da bulunmaktadır. Predictive IntelliSense özelliği hakkında daha fazla bilgi için PowerShell blogundaki duyuruya bakınız.
Microsoft Store kurulum paketi
PowerShell 7.1 Microsoft Store'a yayımlandı. PowerShell sürümünü Microsoft Store web sitesinde veya Windows'taki Store uygulamasında bulabilirsiniz.
Microsoft Store paketinin avantajları:
- Doğrudan Windows'ta yerleşik otomatik güncelleştirmeler
- Intune ve SCCM gibi diğer yazılım dağıtım mekanizmalarıyla entegre olur
Uyarı
Sistem düzeyinde depolanan $PSHOME herhangi bir yapılandırma ayarları değiştirilemez. Bu, WSMAN yapılandırmasını içerir. Bu, uzak oturumların PowerShell'in Mağaza tabanlı yüklemelerine bağlanmasını engeller. Kullanıcı düzeyinde yapılandırmalar ve SSH uzaktan iletişim desteklenir.
Diğer kurulumcular
Desteklenen işletim sistemleri ve destek yaşam döngüsü hakkında daha fazla up-tobilgi için PowerShell Destek Yaşam Döngüsü'ne bakınız.
Tercih ettiğiniz işletim sistemi için kurulum talimatlarını kontrol edin:
Ayrıca, PowerShell 7.1 Debian, Ubuntu ve ARM64 Alpine Linux'un ARM32 ve ARM64 versiyonlarını destekler.
Resmi olarak desteklenmese de, topluluk Arch ve Kali Linux için paketler de sağlamıştır.
Uyarı
Debian 10+, CentOS 8+, Ubuntu 20.04, Alpine ve Arm şu anda WinRM uzaktan kumandasını desteklemiyor. SSH tabanlı uzaktan kurma hakkında detaylar için PowerShell Remoting over SSH sayfasına bakınız.
Deneysel Özellikler
Deneysel Özellikler hakkında daha fazla bilgi için bkz. Deneysel Özellikleri Kullanma.
Aşağıdaki deneysel özellikler artık bu yayında ana akım özellikler haline geldi:
Bu sürümde aşağıdaki deneysel özellikler eklenmiştir:
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
- PowerShell 7.1, bu deneysel özelliği Runspace parametresini tüm
*-PSBreakpointcmdlet'lere ekleyerek genişletir. Runspace parametresi, belirtilen çalışma alanındaki kesinti noktalarıyla etkileşime girecek bir Runspace nesnesini belirtir.
- PowerShell 7.1, bu deneysel özelliği Runspace parametresini tüm
PSNativePSPathResolution - Bu özellik, PowerShell yol sözdizimi desteklemeyen yerel komutlara PowerShell sağlayıcı yollarını aktarmanızı sağlar.
PSCultureInvariantReplaceOperator - Bir
-replaceoperatör ifadesindeki sol el operandı bir dize değilse, o operand bir dize dönüştürülür. Özellik etkinleştirildiğinde, dönüşüm dize dönüştürme için Kültür ayarlarını kullanmaz.PSSubsystemPluginModel , gelecekteki Predictive IntelliSense eklentilerini desteklemek için temel atar.
Kırıcı Değişiklikler ve İyileştirmeler
.NET 5.0'da dizi karşılaştırma davranışı değişti
PowerShell 7.1, aşağıdaki kırılma değişikliğini getiren .NET 5.0 üzerine inşa edilmiştir:
.NET 5.0'dan itibaren, kültür değişmez dizi karşılaştırmaları baskılanmayan kontrol karakterlerini görmezden gelir.
Örneğin, aşağıdaki iki dizi aynı kabul edilir:
# Escape sequence "`a" is Ctrl-G or [char]7 'Food' -eq "Foo`ad"TrueYerel komut yazıldığında
stderr(#13395) olmama düzeltimi$?$falseYerel komutların hata belirtmek amacıyla yazması
stderryaygındır. Bu değişiklikle$?sadece yerel komut sıfır olmayan çıkış koduna sahip olduğunda ayarlanır$false. Bu değişim, deneysel özelliklePSNotApplyErrorActionToStderrilgisizdir.$ErrorActionPreferenceYerel komutların çıktısını etkilememestderr(#13361)Yerel komutların hata belirtmek amacıyla yazması
stderryaygındır. Bu değişiklikle,stderrçıktı hâlâ ErrorRecord nesnelerinde yakalanıyor, ancak ErrorRecord yerel bir komuttan geliyorsa çalışma zamanı artık geçerli olmaz$ErrorActionPreference.Unix zaman girişine izin vermek için adını
-FromUnixTime-UnixTimeSecondsonGet-Dateolarak değiştirin (#13084) (Teşekkürler @aetos382!)Parametre
-FromUnixTime7.1-preview.2 sırasında eklenmiştir. Parametre, veri tipine daha iyi uyacak şekilde yeniden adlandırıldı. Bu parametre, 1 Ocak 1970'ten itibaren saniye cinsinden temsil edilen tam sayı değerini alır, 0:00:00.Bu örnek, bir Unix zamanını (1970-01-01 0:00:00'dan itibaren saniye sayısıyla gösterilen) DateTime'a dönüştürür.
Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AMAçıkça belirtilmiş adlandırılmış parametrenin, hashtable splatting'deki aynı parametrenin yerini almasına izin ver (#13162)
Bu değişiklikle, splatting'den çıkan adlandırılmış parametreler parametre listesinin sonuna taşınır ve böylece tüm açıkça belirtilmiş adlandırılmış parametreler bağlandıktan sonra sınırlandırılır. Basit fonksiyonlar için parametre bağlama, belirli bir adlandırılmış parametre bulunamayınca hata yapmaz. Bilinmeyen adlandırılmış parametreler, basit fonksiyonun parametresine bağlıdır
$args. Splatting'i argüman listesinin sonuna taşımak, parametrelerin içinde$argsgörünme sırasını değiştirir.Örneğin:
function SimpleTest { param( $Name, $Path ) "Name: $Name; Path: $Path; Args: $args" }Önceki davranışta, MyPath buna bağlı
-Pathdeğildir çünkü argüman listesinde üçüncü argümandır. ## Sonunda '$args' ile birlikte dolduruluyorBlah = "World"PS> $hash = @{ Name = "Hello"; Blah = "World" } PS> SimpleTest @hash "MyPath" Name: Hello; Path: ; Args: -Blah: World MyPathBu değişiklikle, argümanlar argüman
@hashlistesinin sonuna taşınır. MyPath listedeki ilk argüman olur, bu yüzden 'ye-Pathbağlıdır.PS> SimpleTest @hash "MyPath" Name: Hello; Path: MyPath; Args: -Blah: World(#12960) için anahtar parametresini
-QualifierkonumsalSplit-Patholmayan hale getir (Teşekkürler@yecril71pl!)Çalışma dizinini belirtilmediğinde (#11946) literal yol
Start-Processolarak çöz (Teşekkürler) (Teşekkürler@NoMoreFood!)-OutFileWeb cmdlet'lerinde parametreyi (#11701) gibi-LiteralPathçalıştırın (Teşekkürler)@iSazonov!)Sayısal literaller için
BigIntegerstring parametre bağlamasını düzeltin (#11634) (Teşekkürler @vexx32!)Windows'ta,
Start-Processmevcut oturumdaki tüm ortam değişkenleriyle bir süreç ortamı oluşturur ve-UseNewEnvironmentyeni bir varsayılan süreç ortamı oluşturur (#10830) (Teşekkürler) @iSazonov!)A'yı
ScriptBlockdelegeye dönüştürürken dönüş sonucunuPSObjectkapatmayın (#10619)A
ScriptBlock, C# bağlamında kullanılacak bir delege türüne dönüştürüldüğünde, sonucu aPSObjectolarak sarmak gereksiz sorunlar yaratır:- Değer delege dönüş türüne dönüştürüldüğünde, aslında
PSObjectaçılır. Yani gereksizPSObjectbir durum. - Delege dönüş tipi
objectolduğunda, C# kodunda çalışmayı zorlaştıran birPSObjecttür ile sarılır.
Bu değişiklikten sonra, geri dönen nesne altta yatan nesnedir.
- Değer delege dönüş türüne dönüştürüldüğünde, aslında