Share via


PowerShell Core 6.2'deki Yenilikler

PowerShell Core 6.2 sürümü performans iyileştirmelerine, hata düzeltmelerine ve kaliteyi geliştiren daha küçük cmdlet ve dil geliştirmelerine odaklanmıştır. İyileştirmelerin tam listesini görmek için GitHub'da ayrıntılı değişiklik günlüklerimize göz atın.

Deneysel Özellikler

Daha önce Deneysel Özellikler desteğini etkinleştirmiştik. 6.2 sürümünde deneyebileceğiniz dört deneysel özellik vardır. İyileştirmeler yapabilmemiz ve özelliğin temel duruma yükseltmeye değip değmeyeceğine karar verebilmemiz için lütfen geri bildirim sağlayın.

Kullanılabilir deneysel özelliklerin listesini almak için kullanın Get-ExperimentalFeature . ve Disable-ExperimentalFeatureile Enable-ExperimentalFeature bu özellikleri etkinleştirebilir veya devre dışı bırakabilirsiniz.

Komut Bulunamadı Önerileri

Bu özellik, yanlış yazdığınız komutlar veya cmdlet'ler için öneriler bulmak için belirsiz eşleştirme kullanır.

Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion

Örnek

Bu örnekte, yanlış yazılmış cmdlet adı, büyük olasılıkla en az olası olan birkaç öneriyle eşleşmektedir.

Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException


Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.

Örtük Uzaktan İletişim Toplu İşlemi

PowerShell, bir işlem hattında örtük uzaktan iletişim kullanırken işlem hattındaki her komutu bağımsız olarak ele alır. Nesneler ardışık olarak serileştirilir ve de-serialized işlem hattının yürütülmesi üzerinden istemci ve uzak sistem arasında.

Bu özellik sayesinde PowerShell, komutun çalıştırılmasının güvenli olup olmadığını ve hedef sistemde mevcut olup olmadığını belirlemek için işlem hattını analiz eder. Doğru olduğunda, PowerShell işlem hattının tamamını uzaktan yürütür ve yalnızca seri hale getirir ve de-serializes sonuçları istemciye geri gönderir.

Enable-ExperimentalFeature -Name PSImplicitRemotingBatching

Localhost üzerinde gerçek dünya testi Get-Process | Sort-Object 10-15 saniyeden 20-30 milisaniyeye düşer. Özelliğin yalnızca istemcide etkinleştirilmesi gerekir. Sunucuda değişiklik yapılması gerekmez.

Geçici Sürücü

Enable-ExperimentalFeature -Name PSTempDrive

PowerShell Core'ı farklı işletim sistemlerinde kullanıyorsanız, geçici dizini bulmak için ortam değişkeninin Windows, macOS ve Linux'ta farklı olduğunu keşfedeceksiniz! Bu özellik sayesinde, kullandığınız işletim sisteminin geçici klasörüne otomatik olarak eşlenen adlı Temp: bir PSDrive alırsınız.

Örnek

PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!

Yerel dosya komutlarının (Linux'ta olduğu gibi ls ) PSDrive'ların farkında olmadığını ve bu Temp: sürücüyü görmediğini unutmayın.

Kısaltma Genişletme

PowerShell cmdlet'lerinin açıklayıcı adlara sahip olması beklenir. Bu, uzun adlar yazmanın daha zor olmasıyla sonuçlanıyor. Bu özellik, cmdlet'in büyük harf karakterlerini yazmanıza ve eşleşme bulmak için sekme tamamlama özelliğini kullanmanıza olanak tanır.

Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion

Örnek

PS> i-arsavsf

Sekme tuşuna basıp Azure PowerShell Az modülünü yüklediyseniz, aşağıdakiler otomatik olarak tamamlanır:

PS> Import-AzRecoveryServicesAsrVaultSettingsFile

Not

Bu özelliğin etkileşimli olarak kullanılması amaçlanmıştır. Cmdlet'lerin kısaltılmış biçimleri yürütülemez. Bu özellik diğer adların yerini almamaktadır.

Hataya Neden Olan Değişiklikler

  • Windows PowerShell ile tutarlı olması için içindeki Write-Output davranışı düzeltin-NoEnumerate. (#9069)
  • Sonucu sonula 1,2,3 | Join-String eşit yap Join-String -InputObject 1,2,3 (#8611) (Teşekkürler@sethvs!)
  • Sort-Object ve ilgili testleri ekleme -Stable (#7862) (Teşekkürler@KirkMunro!)
  • Kesirli saniyeleri kabul etmek için cmdlet'i geliştirme Start-Sleep (#8537) (Teşekkürler @Prototyyppi!)
  • OrdinalIgnoreCase kullanmak için karma tablosu tüm Kültürlerde olacak şekilde case-insensitive değiştirin (#8566)
  • Çıkışa bağlamak Get-ChildItem için içindeki LiteralPath'iImport-Csv düzeltme (#8277) (Teşekkürler@iSazonov!)
  • (#7899) içinde Import-Csv çift tırnak sınırlayıcısı kullanılıyorsa artık adı olmayan bir sütunu atlamaz (Teşekkürler @Topping!)
  • Get-ExperimentalFeature artık anahtarı yok -ListAvailable (#8318)
  • Debug parametresi artık Inquire yerine Continue olarak ayarlı $DebugPreference (#8195) (Teşekkürler@KirkMunro!)
  • Pwsh ile kullanılan etkileşimli olmayan, yeniden yönlendirilen, kodlanmış komutta belirtilirse kabul -OutputFormat edin (#8115)
  • GAC'den yüklemeye çalışmadan önce modül temel yolundan derleme yükleme (#8073)
  • Linux önizleme paketlerinden tilde'yi kaldırma (#8244)
  • Profilleri işlemeden -WorkingDirectory önce işlemeyi taşıma (#8079)
  • Unix'te ortam değişkeni eklemeyin PATHEXT (#7697) (Teşekkürler @iSazonov!)

Bilinen Sorunlar

  • Windows IOT ARM platformlarında uzaktan iletişim, modülleri yüklerken sorun yaşıyor. Bkz. (#8053)

Genel Güncelleştirmeler ve Düzeltmeler

  • Büyük/küçük harfe duyarlı dosya sistemindeki dosya ve klasörler için büyük/küçük harfe duyarlı olmayan sekme tamamlamayı etkinleştirme (#8128)
  • PSVersionInfo.PSVersion ve PSVersionInfo.PSEdition'ı genel yapma (#8054) (Teşekkürler @KirkMunro!)
  • Bloklar catch{ } için $_ / $PSItem Tür Çıkarımı Ekleme (#8020) (Teşekkürler@vexx32!)
  • Statik yöntem çağırma türü çıkarımı düzeltin (#8018) (Teşekkürler @SeeminglyScience!)
  • , , Group-ObjectPSObject ve Hashtable için Select-Objectİçerik Oluşturucu tür çıkarılmıştır (#7231) (Teşekkürler@powercode!)
  • Tür parametreleriyle ByRef-like çağırma yöntemini destekleme (#7721)
  • Windows PowerShell modül yolunun zaten ortamın PSModulePath'inde olduğu durumu işleme (#7727)
  • Düz metni depolayarak Windows dışı cmdlet'leri etkinleştirme SecureString (#9199)
  • Securestring ile clixml içeri aktarılırken Windows olmayanlarda hata iletisini iyileştirme (#7997)
  • ReplyTo parametresi eklendi Send-MailMessage (#8727) (Teşekkürler @replicaJunction!)
  • 'a Send-MailMessage Eski ileti ekleme (#9178)
  • WinRM mevcut olmadığında üzerinde localhost çalışmak için düzeltme Restart-Computer (#9160)
  • PowerShell barındırılırken sonlandırma hatası oluşturma Start-Job (#9128)
  • Ushort, uint, ulong ve kısa değişmez değerler için C# stil türü hızlandırıcıları ve sonekleri ekleme (#7813) (Teşekkürler @vexx32!)
  • Sayısal değişmez değerler için yeni sonekler eklendi - bkz. about_Numeric_Literals (#7901) (Teşekkürler) @vexx32!)
  • SupportsShouldProcess 'true' olarak ayarlanmadığında etki düzeyini doğru bildirin (#8209) (Teşekkürler @vexx32!)
  • Web Cmdlet'lerindeki İstek Karakter Kümesi Sorunlarını Düzeltme (#8742) (Teşekkürler @markekraus!)
  • Web Cmdlet'leriyle ilgili Bekleme 100-continue sorununu düzeltme (#8679) (Teşekkürler @markekraus!)
  • Web cmdlet'leriyle ilgili dosya engelleme sorununu düzeltme (#7676) (Teşekkürler @Claustn!)
  • (#8694) içindeki Invoke-RestMethod kod sayfası ayrıştırma sorununu düzeltme (Teşekkürler @markekraus!)
  • JsonObject.ConvertToJson'ı genel API olarak kullanıma açmak için yeniden düzenleme ConvertTo-Json (#8682)
  • -Depth ile yapılandırılabilir maksimum derinlik ConvertFrom-Json ekleme (#8199) (Teşekkürler @louistio!)
  • cmdlet'ine ConvertTo-Json EscapeHandling parametresi ekleme (#7775) (Teşekkürler @iSazonov!)
  • pwsh'e ekle -CustomPipeName ve Enter-PSHostProcess (#8889)
  • (#8783) ile New-Item Windows'ta göreli sembolik bağlantılar oluşturmayı etkinleştirme
  • Geliştirici modundaki Windows kullanıcılarının yükseltme olmadan symlink oluşturmasına izin ver (#8534)
  • Kabul $null etmek için etkinleştir Write-Information (#8774)
  • MAML yardım içeriğiyle gelişmiş işlevler için düzeltme Get-Help (#8353)
  • Yalnızca bir parametre bildirildiğinde (#8754) -Parameter ile PSTypeName sorunu düzeltilir Get-Help (Teşekkürler @pougetat!)
  • Açıklama yardımı için Get-Help ScriptBlock'ta yürütülen belirteç hesaplama düzeltmesi. (#8238) (Teşekkürler @hubuk!)
  • Cmdlet -Parameter parametresini dize dizilerini kabul etmek için değiştirin Get-Help (#8454) (Teşekkürler @sethvs!)
  • Yolu boşluk içeriyorsa PAGER'yi çözme (#8571) (Teşekkürler @pougetat!)
  • Kullanıcıya nasıl çıkış yapılacağını bildirmek için 'help' işlevindeki kullanımına less istem ekleyin (#7998)
  • cmdlet'ine Format-Hex destek sabit listesi ve karakter türleri ekleme (#8191) (Teşekkürler @iSazonov!)
  • ShouldProcess'i (#8178) uygulamasından Format-Hex kaldırma
  • cmdlet'ine Format-Hex yeni Offset ve Count parametreleri ekleme ve cmdlet'i yeniden düzenleme (#7877) (Teşekkürler @iSazonov!)
  • içinde 'name' öğesine 'label' ConvertTo-Htmliçin diğer ad anahtarı olarak izin ver, 'width' girişinin tamsayı (#8426) olmasını sağlar (Teşekkürler @mklement0!)
  • Betik bloğu tabanlı hesaplanmış özelliklerin (#8427) içinde ConvertTo-Html yeniden çalışmasını sağlama (Teşekkürler @mklement0!)
  • İşlem hattı girişinden metin oluşturmak için cmdlet Join-String ekleme (#7660) (Teşekkürler @powercode!)
  • FormatString parametre mantığı cmdlet'ini düzeltme Join-String (#8449) (Teşekkürler @sethvs!)
  • Uzaktan iletişim üzerinde çalışmak için kullanmaya $RAWUI geri dönün Clear-Host ve temizleyin (#8609)
  • Basitçe çağrıldığı şekilde [console]::clear değiştirin Clear-Host ve Unix'ten net diğer adı kaldırın (#8603)
  • Çıkışa bağlamak Get-ChildItem için içindeki LiteralPath'i Import-Csv düzeltme (#8277) (Teşekkürler@iSazonov!)
  • help işlevi AliasHelpInfo için disk belleği kullanmamalıdır (#8552)
  • Start-Transcript Döküm üst bilgisini en aza indirmek için öğesini ekleyin -UseMinimalHeader (#8402) (Teşekkürler@lukexjeremy!)
  • ve Disable-ExperimentalFeature cmdlet'leri ekleme Enable-ExperimentalFeature (#8318)
  • logman.exe varsa PSDiagnostics'ten tüm cmdlet'leri kullanıma sunma (#8366)
  • Kalıcı parametresini platformdan New-PSDrivenon-Windows kaldırma (#8291) (Teşekkürler @lukexjeremy!)
  • (#7206) için cd + destek ekleme (Teşekkürler @bergmeister!)
  • - ve + adlı klasörlerle çalışmak için etkinleştir Set-Location -LiteralPath (#8089)
  • Test-Pathboş veya $null yol değeri verildiğinde döndürür $false (#8080) (Teşekkürler@vexx32!)
  • Yol hiçbir sağlayıcıyla eşleşmese bile dinamik parametrenin döndürülmesine izin ver (#7957)
  • Unix platformlarında ve Enter-PSHostProcess desteği Get-PSHostProcessInfo (#8232)
  • Cmdlet'teki Get-Content ayırmaları azaltma (#8103) (Teşekkürler @iSazonov!)
  • İçerik yazarken okuma erişimini diğer araçlarla paylaşmak için etkinleştirme Add-Content (#8091)
  • Get/Add-Content bir kapsayıcıyı hedeflerken geliştirilmiş hata oluşturur (#7823) (Teşekkürler @kvprasoon!)
  • cmdlet'ine Get-Culture ve -NoUserOverrides-ListAvailable parametreleri ekleme -Name(#7702) (Teşekkürler@iSazonov!)
  • Kodlama parametresinin tamamlanması için birleşik öznitelik ekleyin. (#7732) (Teşekkürler @ThreeFive-O!)
  • Kodlama parametrelerinde kayıtlı kod sayfalarının sayısal kimliklerine ve adlarına izin ver (#7636) (Teşekkürler@iSazonov!)
  • Joker karakterle düzeltme Rename-Item -Path (#7398) (Teşekkürler @kwkam!)
  • Start-Transcript ve dosyası kullanıldığında silmek yerine boş dosya (#8131) (Teşekkürler@paalbra!)
  • Add-TypeFileAccess.Read ve FileShare.Read ile açık kaynak dosyaları oluşturun (#7915) (Teşekkürler)@IISResetMe!)
  • En son Windows için düzeltme Enter-PSSession -ContainerId (#7883)
  • NestedModules özelliğinin (#7859) tarafından Test-ModuleManifest dolduruldığından emin olun
  • -UFormat'a Get-Date büyük/küçük harf ekleme %F (#7630) (Teşekkürler@britishben!)
  • Bağımlılıkları olan hizmetleri durdurmak için düzeltme Set-Service -Status Stopped (#5525) (Teşekkürler @zhenggu!)