PowerShell 7.0’daki yenilikler
PowerShell 7.0, heterojen ortamları ve karma bulutu yönetmek için oluşturulmuş açık kaynaklı, platformlar arası (Windows, macOS ve Linux) bir PowerShell sürümüdür.
Bu sürümde, aşağıdakiler dahil olmak üzere bir dizi yeni özellik sunuyoruz:
- ile işlem hattı paralelleştirme
ForEach-Object -Parallel
- Yeni işleçler:
- Üçüncül işleç:
a ? b : c
- İşlem hattı zinciri işleçleri:
||
ve&&
- Null koşullu işleçler:
??
ve??=
- Üçüncül işleç:
- Hataları daha kolay araştırmak için basitleştirilmiş ve dinamik hata görünümü ve
Get-Error
cmdlet'i - Kullanıcıların örtük bir Windows PowerShell oturumundaki modülleri içeri aktarmasını sağlayan bir uyumluluk katmanı
- Otomatik yeni sürüm bildirimleri
- DSC kaynaklarını doğrudan PowerShell 7'den çağırma özelliği (deneysel)
Özelliklerin ve düzeltmelerin tam listesini görmek için bkz. değişiklik günlükleri.
PowerShell'i nereden yükleyebilirim?
PowerShell 7 şu anda x64'te aşağıdaki işletim sistemlerini destekler:
- Windows 8.1 ve 10
- Windows Server 2012, 2012 R2, 2016 ve 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
- Alpine Linux 3.8+
Ayrıca, PowerShell 7.0 Arm32 ve ARM64 debian, Ubuntu ve ARM64 Alpine Linux çeşitlerini destekler.
Tercih ettiğiniz işletim sistemi Windows, macOS veya Linux için yükleme yönergelerini denetleyin.
Resmi olarak desteklenmese de topluluk Arch ve Kali Linux için paketler de sağlamıştır.
Not
Debian 10 ve CentOS 8 şu anda WinRM uzaktan iletişimini desteklemiyor. SSH tabanlı uzaktan iletişim kurma hakkında ayrıntılı bilgi için bkz. SSH üzerinden PowerShell Uzaktan İletişimi.
Desteklenen işletim sistemleri ve destek yaşam döngüsü hakkında daha güncel bilgiler için bkz. PowerShell Destek Yaşam Döngüsü.
PowerShell 7'i çalıştırma
PowerShell 7, Windows PowerShell ayrı olarak bir dizine yüklenir. Bu, PowerShell 7'yi Windows PowerShell 5.1 ile yan yana çalıştırmanızı sağlar. PowerShell 6.x için PowerShell 7, PowerShell 6.x'i kaldıran yerinde bir yükseltmedir.
- PowerShell 7'nin yüklü olduğu
%programfiles%\PowerShell\7
- klasör
%programfiles%\PowerShell\7
öğesine eklenir$env:PATH
PowerShell 7 yükleyici paketi, PowerShell 6.x'in önceki sürümlerini yükseltmektedir:
- Windows üzerinde PowerShell 6.x:
%programfiles%\PowerShell\6
yerine%programfiles%\PowerShell\7
- Linux: şununla değiştirilir:
/opt/microsoft/powershell/6
/opt/microsoft/powershell/7
- macOS: şununla değiştirilir:
/usr/local/microsoft/powershell/6
/usr/local/microsoft/powershell/7
Not
Windows PowerShell'da, PowerShell'i başlatacak yürütülebilir dosya olarak adlandırılırpowershell.exe
. Sürüm 6 ve üzerinde, yürütülebilir dosya adı yan yana yürütmeyi destekleyecek şekilde değiştirilir. PowerShell 7'yi başlatmaya yönelik yeni yürütülebilir dosya adı şeklindedir pwsh.exe
. Önizleme derlemeleri, 7 önizleme dizininin altında olduğu pwsh
gibi pwsh-preview
yerinde kalır.
Windows PowerShell ile geriye dönük uyumluluk iyileştirildi
PowerShell 7.0, bir öğesini .NET Core 3.1'e taşıyarak mevcut Windows PowerShell modülleriyle çok daha geriye dönük uyumluluk sağlar. Bu, Ve gibi Out-GridView
Show-Command
GUI işlevselliği gerektiren Windows'ta birçok modülün yanı sıra Windows'un bir parçası olarak gelen birçok rol yönetimi modülünü içerir.
Windows için useWindowsPowerShell yeni bir anahtar parametresi öğesine Import-Module
eklenir. Bu anahtar, PowerShell 7'de yerel bir Windows PowerShell işlemi kullanarak bu modülde yer alan cmdlet'leri örtük olarak çalıştıran bir proxy modülü oluşturur.
Import-Module hakkında daha fazla bilgi için.
PowerShell 7.0 ile hangi Microsoft modüllerinin çalıştığı hakkında daha fazla bilgi için bkz. Modül Uyumluluğu Tablosu.
ForEach-Object'a paralel yürütme eklendi
Bir ForEach-Object
koleksiyondaki öğeleri yineleyen cmdlet artık yeni Parallel parametresiyle yerleşik paralelliğe sahiptir.
Varsayılan olarak, paralel betik blokları paralel görevleri başlatan çağıranın geçerli çalışma dizinini kullanır.
Bu örnek, yerel bir Windows makinesindeki 5 sistem günlüğünden 50.000 günlük girdisi alır:
$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'
$logEntries = $logNames | ForEach-Object -Parallel {
Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5
$logEntries.Count
50000
Parallel parametresi, her giriş günlüğü adı için paralel olarak çalıştırılacak betik bloğunu belirtir.
Yeni ThrottleLimit parametresi, belirli bir zamanda paralel olarak çalışan betik bloklarının sayısını sınırlar. Varsayılan değer 5’tir.
Betik bloğundaki $_
geçerli giriş nesnesini temsil etmek için değişkenini kullanın.
$using:
Çalışan betik bloğuna değişken başvuruları geçirmek için kapsamı kullanın.
ForEach-Object hakkında daha fazla bilgi için.
Üçüncül işleç
PowerShell 7.0, basitleştirilmiş if-else
bir deyim gibi davranan bir üçüncül işleç sunar.
PowerShell'in üçüncül işleci C# üçüncül işleç söz diziminden yakından modellenmiştir:
<condition> ? <if-true> : <if-false>
Koşul-ifadesi her zaman değerlendirilir ve sonucu, hangi dalın daha sonra değerlendirileceğini belirlemek için Boole değerine dönüştürülür:
- İfade
<if-true>
doğruysa<condition>
, ifade yürütülür - İfade
<if-false>
false ise<condition>
, ifade yürütülür
Örnek:
$message = (Test-Path $path) ? "Path exists" : "Path not found"
Bu örnekte, yol varsa Yol var görüntülenir. Yol yoksa Yol bulunamadı görüntülenir.
If hakkında daha fazla bilgi için.
İşlem hattı zinciri işleçleri
PowerShell 7, ve ||
işleçlerini &&
koşullu zincir işlem hatlarına uygular. Bu işleçler PowerShell'de "işlem hattı zinciri işleçleri" olarak bilinir ve ve zsh
gibi bash
kabuklardaki AND ve OR listelerinin yanı sıra Windows Komut Kabuğu'ndaki (cmd.exe
) koşullu işleme simgelerine benzer.
İşleç &&
, sol taraftaki işlem hattı başarılı olursa sağ taraftaki işlem hattını yürütür. Buna karşılık, ||
sol taraftaki işlem hattı başarısız olursa işleç sağ işlem hattını yürütür.
Not
Bu işleçler, işlem hattının $?
başarısız olup olmadığını belirlemek için ve $LASTEXITCODE
değişkenlerini kullanır. Bu, bunları yalnızca cmdlet'ler veya işlevlerle değil yerel komutlarla kullanmanıza olanak tanır.
Burada, ilk komut başarılı olur ve ikinci komut yürütülür:
Write-Output 'First' && Write-Output 'Second'
First
Second
Burada ilk komut başarısız olur, ikincisi yürütülemez:
Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad
Burada, ilk komut başarılı olur, ikinci komut yürütülemez:
Write-Output 'First' || Write-Output 'Second'
First
Burada ilk komut başarısız olduğundan ikinci komut yürütülür:
Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second
İşlem Hattı Zinciri İşleçleri hakkında daha fazla bilgi için.
Null birleşim, atama ve koşullu işleçler
PowerShell 7 Null birleşim işleci ??
, Null koşullu atama ??=
ve Null koşullu üye erişim işleçleri ?.
ve ?[]
içerir.
Null birleşim İşleci ??
Null birleşim işleci ??
, null değilse sol işleneninin değerini döndürür.
Aksi takdirde, sağ işleneni değerlendirir ve sonucunu döndürür.
??
Sol işlenen null olmayan olarak değerlendirilirse işleç sağ işlenenini değerlendirmez.
$x = $null
$x ?? 100
100
Aşağıdaki örnekte sağ işlenen değerlendirilmez:
[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020
Null koşullu atama işleci ?? =
Null koşullu atama işleci ??=
, sağ işleneninin değerini yalnızca sol işlenen null olarak değerlendirilirse sol işlenenine atar.
??=
Sol işlenen null olmayan olarak değerlendirilirse işleç sağ işlenenini değerlendirmez.
$x = $null
$x ??= 100
$x
100
Aşağıdaki örnekte sağ işlenen değerlendirilmez:
[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020
Null koşullu üye erişim işleçleri?. Ve? [] (Deneysel)
Not
Bu, PSNullConditionalOperators adlı deneysel bir özelliktir. Daha fazla bilgi için bkz . Deneysel Özellikleri Kullanma.
Null koşullu işleç, üye erişimine, ?.
veya öğe erişimine izin verir, ?[]
ancak işlenen null olmayan olarak değerlendirilirse, aksi takdirde null döndürür.
Not
PowerShell ?
değişken adının bir parçası olabileceğinden, bu işleçleri kullanmak için değişken adının resmi belirtimi gereklidir. Bu nedenle veya değişken adının ${a?}
bir parçası olduğunda ?
gibi ${a}
değişken adlarında kullanılması {}
gerekir.
Aşağıdaki örnekte, Status üye özelliğinin değeri döndürülür:
$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped
Aşağıdaki örnek, üye adına Erişmeye çalışmadan null döndürür Durumu:
$service = $Null
${Service}?.status
Benzer şekilde, kullanılarak ?[]
öğesinin değeri döndürülür:
$a = 1..10
${a}?[0]
1
İşlenen null olduğunda, öğeye erişilir ve null döndürülür:
$a = $null
${a}?[0]
Daha fazla bilgi için About_Operators.
Yeni görünüm ConciseView ve cmdlet Get-Error
PowerShell 7.0, yeni bir varsayılan conciseView görünümüyle etkileşimli ve betik hatalarının okunabilirliğini geliştirmek için hata iletilerinin görüntülenmesini geliştirir. Görünümler, tercih değişkeni $ErrorView
aracılığıyla kullanıcı tarafından seçilebilir.
ConciseView ile, bir hata bir betik veya ayrıştırıcı hatasından değilse, bu tek satırlık bir hata iletisidir:
Get-Childitem -Path c:\NotReal
Get-ChildItem: can't find path 'C:\NotReal' because it doesn't exist
Hata betik yürütme sırasında oluşuyorsa veya ayrıştırma hatasıysa, PowerShell hatayı içeren çok satırlı bir hata iletisi, hatanın o satırda nerede olduğunu gösteren bir işaretçi ve hata iletisi döndürür. Terminal ANSI renk kaçış dizilerini (VT100) desteklemiyorsa renkler görüntülenmez.
PowerShell 7'deki varsayılan görünüm ConciseView'dır. Önceki varsayılan görünüm NormalView'dı ve tercih değişkenini $ErrorView
ayarlayarak bunu seçebilirsiniz.
$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView
Not
Hata iletisinin vurgu rengini değiştirmeyi desteklemek için yeni $Host.PrivateData
errorAccentColor özelliği eklendi.
Yeni bir cmdlet Get-Error
, istendiğinde tam hatanın tam kapsamlı bir görünümünü sağlar. Varsayılan olarak cmdlet, oluşan son hatanın iç özel durumları da dahil olmak üzere tüm ayrıntılarını görüntüler.
Get-Error
cmdlet'i yerleşik değişkenini $Error
kullanarak işlem hattından girişi destekler.
Get-Error
tüm kanallı hataları görüntüler.
$Error | Get-Error
cmdlet'i Get-Error
Newest parametresini destekleyerek geçerli oturumdan kaç hata görüntülenmesini istediğinizi belirtmenize olanak sağlar.
Get-Error -Newest 3 # Displays the lst three errors that occurred in the session
Get-Error hakkında daha fazla bilgi için.
Yeni sürüm bildirimi
PowerShell 7, kullanıcıları PowerShell güncelleştirmelerinin varlığı konusunda uyarmak için güncelleştirme bildirimlerini kullanır. PowerShell, daha yeni bir sürümün kullanılabilir olup olmadığını belirlemek için günde bir kez çevrimiçi bir hizmeti sorgular.
Not
Güncelleştirme denetimi, belirli bir 24 saatlik süre içindeki ilk oturumda gerçekleşir. Performans nedeniyle güncelleştirme denetimi oturum başladıktan 3 saniye sonra başlar. Bildirim yalnızca sonraki oturumların başlangıcında gösterilir.
Varsayılan olarak, PowerShell sürümüne/dalına bağlı olarak iki farklı bildirim kanalından birine abone olur. Desteklenen, PowerShell'in Genel Kullanıma Açık (GA) sürümleri yalnızca güncelleştirilmiş GA sürümleri için bildirim döndürür. Önizleme ve Sürüm Adayı (RC) sürümleri önizleme, RC ve GA sürümlerine yönelik güncelleştirmeleri bildirir.
Güncelleştirme bildirimi davranışı ortam değişkeni kullanılarak $Env:POWERSHELL_UPDATECHECK
değiştirilebilir. Aşağıdaki değerler desteklenir:
-
Varsayılan , tanımlanmama ile aynıdır
$Env:POWERSHELL_UPDATECHECK
- GA sürümleri, GA sürümlerine yönelik güncelleştirmeleri bildirir
- Önizleme/RC sürümleri, GA güncelleştirmeleri ve önizleme sürümleri bildirimi
- Kapat özelliği güncelleştirme bildirimi özelliğini kapatır
- LTS yalnızca uzun süreli hizmet (LTS) GA sürümlerine yönelik güncelleştirmeleri bildirir
Not
Ortam değişkeni $Env:POWERSHELL_UPDATECHECK
ilk kez ayarlanana kadar mevcut değildir.
Yalnızca yayınlar için sürüm bildirimini ayarlamak için LTS
:
$Env:POWERSHELL_UPDATECHECK = 'LTS'
Sürüm bildirimini davranışa Default
ayarlamak için:
$Env:POWERSHELL_UPDATECHECK = 'Default'
Güncelleştirme Bildirimleri hakkında daha fazla bilgi için.
Invoke-DSCResource ile yeni DSC Kaynağı desteği (Deneysel)
Not
Bu, PSDesiredStateConfiguration.InvokeDscResource adlı deneysel bir özelliktir. Daha fazla bilgi için bkz . Deneysel Özellikleri Kullanma.
Cmdlet, Invoke-DscResource
belirtilen bir PowerShell Desired State Configuration (DSC) kaynağının yöntemini çalıştırır.
Bu cmdlet, yapılandırma belgesi oluşturmadan doğrudan bir DSC kaynağını çağırır. Bu cmdlet'i kullanarak, yapılandırma yönetimi ürünleri DSC kaynaklarını kullanarak Windows veya Linux'ı yönetebilir. Bu cmdlet, DSC altyapısı hata ayıklama etkinken çalışırken kaynakların hata ayıklamasını da etkinleştirir.
Bu komut, WindowsProcess adlı kaynağın Set yöntemini çağırır ve belirtilen Windows işlemini başlatmak için zorunlu Path ve Arguments özelliklerini sağlar.
Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
Arguments = ''
}
Invoke-DSCResource hakkında daha fazla bilgi için.
Hataya Neden Olan Değişiklikler ve Geliştirmeler
Hataya Neden Olan Değişiklikler
- Güncelleştirme bildiriminin LTS ve varsayılan kanalları desteklemesini sağlama (#11132)
- Test-Connection Windows PowerShell'daki gibi çalışacak şekilde güncelleştirin (#10697) (Teşekkürler@vexx32!)
- $ korunsun mu? ParenExpression, SubExpression ve ArrayExpression için (#11040)
- çalışma dizinini Start-Job'de geçerli dizin olarak ayarlama (#10920) (Teşekkürler @iSazonov!)
- oturum içi kültür değişikliklerini tutarlı bir şekilde yansıtan $PSCulture yapma (#10138) (Teşekkürler @iSazonov!)
Altyapı Güncelleştirmeler ve Düzeltmeleri
- Uzak senaryolar için kesme noktası API'lerinde geliştirmeler (#11312)
- PowerShell sınıf tanımının başka bir Runspace'e sızmasını düzeltme (#11273)
- 7.0.0-Preview1'de eklenen FirstOrDefault temel öğesinin neden olduğu biçimlendirmedeki bir regresyon düzeltildi (#11258)
- PS7 Telemetrisinde izlenen ek Microsoft Modülleri (#10751)
- Onaylanan özellikleri deneysel olmayan hale getirme (#11303)
- Varsa TargetObject kullanmak için ConciseView'ı güncelleştirin (#11075)
- CompletionCompleters genel yöntemlerinde NullReferenceException düzeltmesi (#11274)
- Windows dışı platformlarda apartman iş parçacığı durumu denetimini düzeltme (#11301)
- İşlem ve makine ortamı değişkenlerini birleştirmek için PSModulePath ayarını güncelleştirin (#11276)
- .NET Core'un 3.1.0'a çarpması (#11260)
- $env:PATH önünde $PSHOME algılanması düzeltildi (#11141)
- pwsh'nin $env:PSModulePath'i devralmasına izin ver ve powershell.exe doğru başlatılmasını etkinleştir (#11057)
- .NET Core 3.1 önizleme 1'e gitme (#10798)
- Dosya sistemi sağlayıcısında etiket denetimlerini yeniden düzenleme (#10431) (Teşekkürler @iSazonov!)
- Komut dosyası günlüğünde CR ve yeni satırı 0x23CE karakteriyle değiştirme (#10616)
- AppDomain.CurrentDomain.ProcessExit'ten olay işleyicisinin kaydını kaldırarak kaynak sızıntısını düzeltme (#10626)
- Hata Ayıklama, Hata, Bilgi, İlerleme, Ayrıntılı veya Uyarı iletileri oluşturulduğunda hata ayıklayıcıya girmek için ActionPreference.Break'e destek ekleyin (#8205) (Teşekkürler @KirkMunro!)
- .CPL uzantısı belirtmeden PowerShell'de denetim masası eklentilerini başlatmayı etkinleştirin. (#9828)
- -split işlecindeki negatif sayıları destekleme (#8960) (Teşekkürler @ece-jacob-scott!)
Genel Cmdlet Güncelleştirmeler ve Düzeltmeler
- UnixStat Deneysel Özelliği'nde dosya değişikliklerinin tarihini ayarlamaya yönelik Raspbian sorunu için düzeltme (#11313)
- ConvertFrom-SecureString 'a -AsPlainText Ekleme (#11142)
- WinCompat için WindowsPS sürüm denetimi eklendi (#11148)
- Bazı WinCompat senaryolarında hata raporlamayı düzeltme (#11259)
- Yerel ikili çözümleyici ekleme (#11032) (Teşekkürler @iSazonov!)
- Karakter genişliği hesaplamasını CJK karakterlerini doğru şekilde dikkate almak için güncelleştirin (#11262)
- macOS için Unblock-File ekleme (#11137)
- Get-PSCallStack'de regresyonu düzeltme (#11210) (Teşekkürler @iSazonov!)
- İş cmdlet'lerini kullanırken ScheduledJob modülünün otomatik yüklemesini kaldırma (#11194)
- Get-Error cmdlet'ine OutputType ekleme ve özgün tür adlarını koruma (#10856)
- SupportsVirtualTerminal özelliğindeki null başvuru düzeltilir (#11105)
- Get-WinEvent sınır denetimi ekleme (#10648) (Teşekkürler @iSazonov!)
- StopUpstreamCommandsException komutunun -ErrorVariable içinde doldurulmaması için komut çalışma zamanını düzeltin (#10840)
- Yerel komutlar için çıkış kodlamasını [Console]::OutputEncoding olarak ayarlayın (#10824)
- Örneklerde çok satırlı kod bloklarını destekleme (#10776) (Teşekkürler @Greg-Smulko!)
- Select-String cmdlet'ine Culture parametresi ekleme (#10943) (Teşekkürler @iSazonov!)
- Sonunda ters eğik çizgi bulunan Start-Job çalışma dizini yolu düzeltilir (#11041)
- ConvertFrom-Json: Koleksiyonları varsayılan olarak açma (#10861) (Teşekkürler @danstur!)
- -CaseSensitive ve -AsHashtable anahtarlarıyla Group-Object cmdlet'i için büyük/küçük harfe duyarlı Hashtable kullanma (#11030) (Teşekkürler @vexx32!)
- Yolu doğru büyük/küçük harfe sahip olacak şekilde yeniden oluştururken dosyaları numaralandırma işlemi başarısız olursa özel durumu işleme (#11014)
- ConciseView'un MyCommand yerine Etkinliği göstermesini düzeltme (#11007)
- Web cmdlet'lerinin HTTP hata durumlarını yoksaymasına izin ver (#10466) (Teşekkürler @vdamewood!)
- Birden fazla CommandInfo'nun Get-Command 'a bağlanmasını düzeltme (#10929)
- Windows için Get-Counter cmdlet'ini geri ekleme (#10933)
- [AutomationNull]::Value ve [NullString]::Value değerlerini $null olarak ConvertTo-Json yapın (#10957)
- SSH uzaktan iletişim için ipv6 adresinden köşeli ayraçları kaldırma (#10968)
- pwsh'ye gönderilen komut yalnızca boşluksa kilitlenmeyi düzeltin (#10977)
- Platformlar arası Get-Clipboard ve Set-Clipboard eklendi (#10340)
- Dosya sistemi nesnesinin özgün yolunu ek sondaki eğik çizgiye sahip olmayacak şekilde ayarlama düzeltilir (#10959)
- ConvertTo-Json için destek $null (#10947)
- Windows'da Out-Printer komutu geri ekle (#10906)
- Start-Job -WorkingDirectory'de boşluk düzeltmesi (#10951)
- PSConfiguration.cs(#10963) içindeki bir ayar için null değerini alırken varsayılan değeri döndür (Teşekkürler @iSazonov!)
- Sonlandırıcı olmayan GÇ özel durumunu işleme (#10950)
- Out-GridView, Show-Command ve Get-Help -ShowWindow'ı etkinleştirmek için GraphicalHost derlemesi ekleme (#10899)
- Get-HotFix işlem hattı aracılığıyla ComputerName alma (#10852) (Teşekkürler @kvprasoon!)
- Ortak parametreleri kullanılabilir olarak göstermesi için parametreler için sekme tamamlamayı düzeltme (#10850)
- First() çağrılmadan önce herhangi bir sistem dosyası girdisinin döndürülip döndürülmediğini denetlemek için GetCorrectCasedPath() düzeltildi (#10930)
- çalışma dizinini Start-Job'de geçerli dizin olarak ayarlama (#10920) (Teşekkürler @iSazonov!)
- TabExpansion2'yi -CursorColumn gerektirmeyen ve $InputScript.Length olarak davranacak şekilde değiştirin (#10849)
- Konağın Ekran Satırlarını veya Sütunlarını döndürmeyebileceği durumu işleme (#10938)
- Desteklemeyen konaklar için tema renklerinin kullanımını düzeltme (#10937)
- Update-List geri ekle komutu (#10922)
- Clear-RecycleBin için FWLink Kimliğini Güncelleştirme (#10925)
- Sekme tamamlama sırasında, dosya özniteliklerini okuyamıyorsanız dosyayı atlayın (#10910)
- Windows için Clear-RecycleBin geri ekleme (#10909)
- Çıkışta VT kaçış dizisi olup olmadığını denetlemek için ekleyin
$env:__SuppressAnsiEscapeSequences
(#10814) - Select-String çıkışı renklendirmek için -NoEmphasize parametresi ekleme (#8963) (Teşekkürler @derek-xia!)
- Get-HotFix cmdlet'ini geri ekleme (#10740)
- PowerShell barındıran uygulamalarda Add-Type kullanılabilir hale getirme (#10587)
- LanguagePrimitives.IsNullLike() içinde daha etkili değerlendirme sırası kullanın (#10781) (Teşekkürler @vexx32!)
- Format-Hex'da karma koleksiyon kanallı giriş ve kanallı giriş akışlarının işlenmesini geliştirme (#8674) (Teşekkürler @vexx32!)
- Değer beklenen türle eşleşmediğinde SSHConnection karma tablolarında tür dönüştürmeyi kullanın (#10720) (Teşekkürler @SeeminglyScience!)
- -TotalCount ayarlandığında Get-Content -ReadCount 0 davranışını düzeltme (#10749) (Teşekkürler @eugenesmlv!)
- Get-WinEvent'de yeniden ifade erişimi reddedildi hata iletisi (#10639) (Teşekkürler @iSazonov!)
- Sabit listesi veya türü kısıtlanmış değişken ataması için sekme tamamlamayı etkinleştirme (#10646)
- Kullanılmayan SourceLength uzaktan iletişim özelliğini kaldırma ve biçimlendirme sorunlarına neden olma (#10765)
- ConvertFrom-StringData 'a -Sınırlayıcı parametresi ekleme (#10665) (Teşekkürler @steviecoaster!)
- SSH ile Invoke-Command kullanırken ScriptBlock için konum parametresi ekleme (#10721) (Teşekkürler @machgo!)
- ConciseView için birden çok satır varsa ancak betik adı yoksa satır bağlamı bilgilerini göster (#10746)
- Dosya sistemi sağlayıcısına \wsl$\ yolları için destek ekleme (#10674)
- Ayrıştırıcıda TokenKind.QuestionMark için eksik belirteç metnini ekleme (#10706)
- Her ForEach-Object -Paralel çalışan betiğin geçerli çalışma dizinini çağıran betikle aynı konuma ayarlayın. (#10672)
- api-ms-win-core-file-l1-2-2.dll FindFirstStreamW ve FindNextStreamW API'leri için Kernell32.dll ile değiştirin (#10680) (Teşekkürler @iSazonov!)
- Betiği daha StrictMode toleranslı olacak şekilde biçimlendirmeye yardımcı olacak ince ayar yapın (#10563)
- New-Service 'a -SecurityDescriptorSDDL parametresi ekleme (#10483) (Teşekkürler @kvprasoon!)
- Bilgi çıkışını kaldırma, ping kullanımını Test-Connection birleştirme (#10478) (Teşekkürler @vexx32!)
- Özel ayrıştırma noktalarını bunlara erişmeden okuyun (#10662) (Teşekkürler @iSazonov!)
- Terminale doğrudan Clear-Host çıkışı (#10681) (Teşekkürler @iSazonov!)
- Format-Table ve -Property ile gruplandırma için yeni satır ekleme (#10653)
- Boş dizeye izin vermek için Get-Random üzerindeki -InputObject öğesinden [ValidateNotNullOrEmpty] öğesini kaldırın (#10644)
- Öneri sistem dizesi uzaklık algoritması büyük/küçük harfe duyarlı olun (#10549) (Teşekkürler @iSazonov!)
- ForEach-Object -Paralel giriş işlemede null başvuru özel durumu düzeltildi (#10577)
- PowerShell grup ilkesi tanımları ekleme (#10468)
- Konsol ana bilgisayarını, birleştirme senaryolarında kullanılan XTPUSHSGR/XTPOPSGR VT denetim dizilerini destekleyecek şekilde güncelleştirin. (#10208)
- Start-Job WorkingDirectory parametresi ekleme (#10324) (Teşekkürler @davinci26!)
- Kesme noktası değişikliklerinin yanlışlıkla konak runspace hata ayıklayıcısına çoğaltılmasına neden olan olay işleyicisini kaldırın (#10503) (Teşekkürler @KirkMunro!)
- api-ms-win-core-job-12-1-0.dll Microsoft.PowerShell.Commands.NativeMethods P/Invoke API'sindeki Kernell32.dll(#10417) ile değiştirin (Teşekkürler @iSazonov!)
- Değişken ataması ve -OutVariable (#10444) içindeki New-Service için yanlış çıktı düzeltin (Teşekkürler @kvprasoon!)
- Çıkış kodu, komut satırı parametreleri ve boşluk içeren yol ile ilgili genel araç sorunlarını düzeltme (#10461)
- OneDrive'da özyineleme düzeltildi - FindFirstFileEx() öğesini SafeFindHandle türünü kullanacak şekilde değiştirin (#10405)
- NVDA ekran okuyucusu etkinse Windows'da PSReadLine'ı otomatik yüklemeyi atlayın (#10385)
- PowerShell ile yerleşik modül sürümlerini 7.0.0.0'a yükseltme (#10356)
- Add-Type içinde aynı ada sahip bir tür zaten varsa hata oluşturma ekleme (#9609) (Teşekkürler @iSazonov!)
Performans
- Parser.SaveError'da kapatmayı kullanmaktan kaçının (#11006)
- Yeni Regex örnekleri oluştururken önbelleğe almayı geliştirme (#10657) (Teşekkürler @iSazonov!)
- types.ps1xml, typesV3.ps1xml ve GetEvent.types.ps1xml'den PowerShell yerleşik tür verilerinin işlenmesini geliştirme (#10898)
- PSConfiguration.ReadValueFromFile'ı daha hızlı ve daha verimli bellek sağlamak için güncelleştirin (#10839)
- Runspace başlatma için küçük performans geliştirmeleri ekleme (#10569) (Teşekkürler @iSazonov!)
- Yaygın olarak kullanılan senaryoları (#10454) için ForEach-Object hızlandırın ve birçok çalışma alanıyla ForEach-Object Paralel performans sorununu düzeltin (#10455)
Kod Temizleme
- Açıklama ve öğe metnini Microsoft standartlarına uyacak şekilde değiştirme (#11304)
- Compiler.cs temizleme stili sorunları (#10368) (Teşekkürler @iSazonov!)
- CommaDelimitedStringCollection için kullanılmayan tür dönüştürücüsüsünü kaldırın (#11000) (Teşekkürler @iSazonov!)
- InitialSessionState.cs temizleme stili (#10865) (Teşekkürler @iSazonov!)
- PSSession sınıfı için kod temizleme (#11001)
- Get-Help ilk kez çalıştığında çalışmayan 'Update-Help çalıştırma' özelliğini Get-Help kaldırın (#10974)
- Stil sorunlarını düzeltme (#10998) (Teşekkürler @iSazonov!)
- Temizleme: Yerleşik tür diğer adını kullanın (#10882) (Teşekkürler @iSazonov!)
- ConsolePrompting kullanılmayan ayar anahtarını kaldırın ve ExecutionPolicy ayarını sorgularken gereksiz dize oluşturmayı önleyebilirsiniz (#10985)
- Günlük derlemeler için güncelleştirme bildirimi denetimini devre dışı bırakma (#10903) (Teşekkürler @bergmeister!)
- #10338'de kaybolan hata ayıklama API'sini yeniden devreye alma (#10808)
- Artık kullanılmayan WorkflowJobSourceAdapter başvurularını kaldırma (#10326) (Teşekkürler @KirkMunro!)
- PreserveSig özniteliklerini düzelterek atlama listesi kodunda COM arabirimlerini temizleme (#9899) (Teşekkürler @weltkante!)
- -ia'nın -InformationAction ortak parametresinin neden diğer adı olmadığını açıklayan bir açıklama ekleyin (#10703) (Teşekkürler @KirkMunro!)
- InvokeCommandCmdlet.cs InvokeExpressionCommand.cs olarak yeniden adlandırın (#10659) (Teşekkürler @kilasuit!)
- Güncelleştirme bildirimleriyle ilgili küçük kod temizlemeleri ekleme (#10698)
- Uzaktan iletişim kurulum betiklerinden kullanım dışı iş akışı mantığını kaldırma (#10320) (Teşekkürler @KirkMunro!)
- Uygun durumu kullanmak için yardım biçimini güncelleştirin (#10678) (Teşekkürler @tnieto88!)
- Geçen aya ilişkin işlemelerde gelen CodeFactor stili sorunlarını temizleme (#10591) (Teşekkürler @iSazonov!)
- PSTernaryOperator deneysel özelliği açıklamasındaki yazım hatası düzeltilir (#10586) (Teşekkürler @bergmeister!)
- ActionPreference.Suspend numaralandırma değerini desteklenmeyen, ayrılmış bir duruma dönüştürün ve Tercih değişkenlerinde ActionPreference.Ignore kullanma kısıtlamasını kaldırın (#10317) (Teşekkürler) @KirkMunro!)
- İşlevselliği değiştirmeden daha okunabilir ve güvenilir kod elde etmek için ArrayList öğesini List<T> ile değiştirin (#10333) (Teşekkürler @iSazonov!)
- TestConnectionCommand için kod stili düzeltmeleri yapın (#10439) (Teşekkürler @vexx32!)
- AutomationEngine'i temizleme ve ek SetSessionStateDrive yöntem çağrısını kaldırma (#10416) (Teşekkürler @iSazonov!)
- ConvertTo-Csv ve ConvertFrom-Csv için varsayılan ParameterSetName değerini Sınırlayıcı olarak yeniden adlandırın (#10425)
Araçlar
- SDKToUse özelliğinin VS'de derleneceği varsayılan ayarı ekleyin (#11085)
- Install-Powershell.ps1: MSI yüklemesini kullanmak için parametre ekleme (#10921) (Teşekkürler @MJECloud!)
- install-powershell.ps1 için temel örnekler ekleme (#10914) (Teşekkürler @kilasuit!)
- PowerShellHome parametresinde boş dizeyi Install-PowerShellRemoting.ps1 işleyin (#10526) (Teşekkürler @Orca88!)
- install-powershell.sh'de /etc/lsb-release sürümünden /etc/os-release sürümüne geçme (#10773) (Teşekkürler @Himura2la!)
- Windows'da günlük sürümde pwsh.exe ve pwsh'yi denetleyin (#10738) (Teşekkürler @centreboard!)
- installpsh-osx.sh gereksiz dokunmayı kaldırma (#10752)
- Önceden yüklenmiş günlük derlemeyi denetlemek için install-powershell.ps1 güncelleştirme (#10489)
Testler
- Güvenilir olmayan DSC testlerini beklemeye alma (#11131)
- Stringdata testini karma tablo anahtarlarını doğru doğrulamak için düzeltme (#10810)
- Test modüllerini kaldırma (#11061) (Teşekkürler @iSazonov!)
- Test URL'sinin yeniden denemeleri arasındaki süreyi artırma (#11015)
- Test eylemlerini doğru şekilde açıklamak için testleri güncelleştirin. (#10928) (Teşekkürler @romero126!)
- Geçici olarak TestAppDomainProcessExitEvenHandlerNotLeaking testini atlayın (#10827)
- Sızıntı testinin olay işleyicisini kararlı hale getirme (#10790)
- CI YAML'de büyük/küçük harf eşitleme (#10767) (Teşekkürler @RDIL!)
- Olay işleyicisi sızıntı düzeltmesi için test ekleme (#10768)
- Get-ChildItem testi ekleme (#10507) (Teşekkürler @iSazonov!)
- Doğruluk için geçişten parametreye testlerin belirsiz dilini değiştirme (#10666) (Teşekkürler @romero126!)
- ForEach-Object -Parallel testlerine deneysel denetim ekleme (#10354) (Teşekkürler @KirkMunro!)
- Alpine doğrulaması için testleri güncelleştirme (#10428)
Derleme ve Paket Geliştirmeleri
- Eşgüdümlü Paket derlemesi için Nuget paketi imzalama düzeltildi (#11316)
- PowerShell Galerisi ve NuGet'ten bağımlılıkları güncelleştirme (#11323)
- Microsoft.ApplicationInsights'ı 2.11.0'dan 2.12.0'a (#11305) çarpma
- Microsoft.CodeAnalysis.CSharp'ı 3.3.1'den 3.4.0'a çıkarma (#11265)
- Debian 10 ve 11 için Güncelleştirmeler paketleri (#11236)
- Yalnızca RC öncesi deneysel özellikleri etkinleştirme (#11162)
- macOS en düşük sürümünü güncelleştirme (#11163)
- Bump NJsonSchema 10.0.27'den 10.0.28'e (#11170)
- önizleme için README.md ve metadata.json bağlantıları güncelleştiriliyor.5 (#10854)
- PowerShell'e ait uyumluluk testleri için dosyaları seçin (#10837)
- win7x86 msix paketinin derlemesine izin verin. (dahili 10515)
- NormalizeVersion işlevine semantik sürümlerin geçirilmesine izin ver (#11087)
- .NET Core framework'lerini 3.1-preview.3 sürümüne taşıma (#11079)
- /src/Modules'de PSReadLine'ı 2.0.0-beta5'ten 2.0.0-beta6'ya çarpma (#11078)
- 12.0.2 ile 12.0.3 (#11037) (#11038) arasından Newtonsoft.Json'a çarpma
- Debian 10, 11 ve CentOS 8 paketlerini ekleme (#11028)
- ReleaseDate alanıyla Build-Info Json dosyasını karşıya yükleme (#10986)
- .NET Core framework'lerini 3.1-preview.2 sürümüne taşıma (#10993)
- x86 MSIX paketinin derlemesini etkinleştirme (#10934)
- build.psm1'de dotnet SDK yükleme betiği URL'sini güncelleştirme (#10927)
- Bump Markdig.Signed from 0.17.1 to 0.18.0 (#10887)
- 2.0.1'den 2.0.2'ye ThreadJob'ı Çarpma (#10886)
- AppX Bildirimi ve Paketleme modülünü MS Store gereksinimlerine uyacak şekilde güncelleştirin (#10878)
- PowerShell SDK'sı için paket başvurusu önizlemeye güncelleştirildi.5 (dahili 10295)
- güncelleştirme ThirdPartyNotices.txt (#10834)
- Microsoft.PowerShell.Native'i 7.0.0-preview.3 sürümüne çarpma (#10826)
- Microsoft.ApplicationInsights'ı 2.10.0'dan 2.11.0'a (#10608) çarpma
- Bump NJsonSchema 10.0.24 ile 10.0.27 arasında (#10756)
- Derleme sistemine MacPorts desteği ekleme (#10736) (Teşekkürler @Lucius-Q-User!)
- Bump PackageManagement from 1.4.4 to 1.4.5 (#10728)
- Bump NJsonSchema 10.0.23 ile 10.0.24 arasında (#10635)
- MSI'de istemci/sunucu telemetrisini ayırt etmek için ortam değişkeni ekleme (#10612)
- 2.0.3'ten 2.0.4'e kadar PSDesiredStateConfiguration'ı çarpma (#10603)
- Microsoft.CodeAnalysis.CSharp'ı 3.2.1'den 3.3.1'e (#10607) çarpma
- .Net Core 3.0 RTM'ye güncelleştirin (#10604) (Teşekkürler@bergmeister!)
- MSIX paketlemesini Windows Mağazası gereksinimleri sürümüne güncelleştirin (#10588)
- PowerShellGet sürümünü 2.2'den 2.2.1'e (#10382) kaldırma
- Bump PackageManagement sürümü 1.4.3'ten 1.4.4'e (#10383)
- 7.0.0-preview.4 için README.md ve metadata.json güncelleştirme (dahili 10011)
- .Net Core 3.0 sürümünü Önizleme 9'dan RC1'e yükseltin (#10552) (Teşekkürler@bergmeister!)
- ExperimentalFeature listesi oluşturmayı düzeltme (dahili 9996)
- 2.0.0-beta4 sürümünden 2.0.0-beta5'e PSReadLine sürümünü çarpma (#10536)
- Yayın etiketini ayarlamak için yayın derleme betiğini düzeltme
- Microsoft.PowerShell.Native sürümünü 7.0.0-preview.2 sürümüne güncelleştirme (#10519)
- Netcoreapp3.0 preview9 sürümüne yükseltin (#10484) (Teşekkürler @bergmeister!)
- Günlük eşgüdümlü derlemenin günlük derleme olduğunu bildiğinden emin olun (#10464)
- Birleştirilmiş paket derlemesini günlük derlemeleri yayınacak şekilde güncelleştirin (#10449)
- Appveyor başvuruyu kaldırma (#10445) (Teşekkürler @RDIL!)
- 10.0.22'den 10.0.23'e kadar tümsek NJsonSchema sürümü (#10421)
- Alpine'e yönelik bazı bağımlılıklar ihtiyaç duyduğundan linux-x64 derleme klasörünü silme işlemini kaldırın (#10407)
Belgeler ve Yardım İçeriği
- Değişiklik günlüklerini yayın başına bir günlükte yeniden düzenleme (#11165)
- PowerShell 7 çevrimiçi yardım belgeleri için FWLink'leri düzeltme (#11071)
- Güncelleştirme CONTRIBUTING.md (#11096) (Teşekkürler @mklement0!)
- README.md yükleme belgesi bağlantılarını düzeltme (#11083)
- install-powershell.ps1 betiğine örnekler ekler (#11024) (Teşekkürler @kilasuit!)
- CHANGELOG.md Select-String vurgu ve Import-DscResource düzeltmesi (#10890)
- eski bağlantıyı powershell-beginners-guide.md kaldırma (#10926)
- Kararlı ve bakım değişiklik günlüklerini birleştirme (#10527)
- Derleme belgelerinde kullanılan .NET sürümü güncelleştirildi (#10775) (Teşekkürler @Greg-Smulko!)
- MSDN'den powershell-beginners-guide.md'de Microsoft Learn'e bağlantıları değiştirme (#10778) (Teşekkürler @iSazonov!)
- Bozuk DSC genel bakış bağlantısı düzeltildi (#10702)
- Stack Overflow'a başka bir topluluk kaynağı olarak bağlanmak için Support_Question.md dosyasını güncelleştirin (#10638) (Teşekkürler @mklement0!)
- Dağıtım isteği şablonuna işlemci mimarisi ekleme (#10661)
- PowerShell belgelerini öğrenmeye yeni PowerShell MoL kitabı ekleme (#10602)
- v6.1.6 ve v6.2.3 sürümleri için README.md ve meta verileri güncelleştirme (#10523)
- README.md'de yazım hatası düzeltme (#10465) (Teşekkürler @vedhasp!)
- Öğrenme Kaynakları belgelerine PSKoans modülüne başvuru ekleme (#10369) (Teşekkürler @vexx32!)
- 7.0.0-preview.3 için README.md ve metadata.json güncelleştirme (#10393)