Share via


PowerShell 7.3'teki Yenilikler

PowerShell 7.3, .NET 7.0 üzerinde oluşturulan sonraki kararlı sürümdür.

PowerShell 7.3 aşağıdaki özellikleri, güncelleştirmeleri ve hataya neden olan değişiklikleri içerir.

Hataya Neden Olan Değişiklikler ve Geliştirmeler

  • Bu sürümde, Windows API'leri uyumluluk için güncelleştirildi veya kaldırıldı, yani PowerShell 7.3 Windows 7'de çalışmıyor. Windows 7 artık desteklenmese de, önceki derlemeler Windows 7'de çalıştırılabilir.
  • Hyper-V için PowerShell Direct yalnızca Windows 10, sürüm 1809 ve üzeri sürümlerde desteklenir.
  • Test-Connection .NET 7'de kasıtlı olarak yapılan bir hata değişikliği nedeniyle bozuktur. #17018 tarafından izlenir
  • Kolay kaynak temizlemeye izin vermek için , ve end betik bloğuna beginprocesseş olarak blok ekleyin clean (#15177)
  • için $PSStyle.OutputRendering varsayılanı Ana Bilgisayar olarak değiştir
  • Dize girişini değiştirmeden yapma Out-String ve saklama (#17455Out-File)
  • System.Security.AccessControl.ObjectSecurity'nin tür veri tanımını Microsoft.PowerShell.Security modülüne taşıma (#16355) (Teşekkürler@iSazonov!)
    • Bu değişiklik öncesinde, bir kullanıcının System.Security.AccessControl.ObjectSecurity örneği için tanımlanan kod özelliklerini kullanmak için Microsoft.PowerShell.Security modülünü açıkça içeri aktarması gerekmez.
    • Bu değişiklik sonrasında, kullanıcının bu kod özelliklerini ve kod yöntemlerini kullanabilmesi için Microsoft.PowerShell.Security modülünü açıkça içeri aktarması gerekir.

Sekme tamamlama geliştirmeleri

  • PowerShell 7.3, varsayılan olarak Tahmine Dayalı IntelliSense'i etkinleştiren PSReadline 2.2.6'yı içerir. Daha fazla bilgi için bkz . about_PSReadLine.
  • için belirtilen betik bloğu içinde sekme tamamlamayı düzeltin ValidateScriptAttribute. (#14550) (Teşekkürler @MartinGC94!)
  • (#16438) sonrasında break/continue döngü etiketleri için sekme tamamlama eklendi (Teşekkürler@MartinGC94!)
  • Birden çok senaryoda Karma Tablo tamamlamayı geliştirme (#16498) (Teşekkürler @MartinGC94!)
    • Parametre sıçraması
    • için bağımsız değişkenler parametresiInvoke-CimMethod
    • için FilterHashtable parametresi Get-WinEvent
    • CIM cmdlet'leri için özellik parametresi
    • Üye tamamlama senaryolarından yinelenenleri kaldırır
  • Ağ paylaşımı (UNC yolu) tamamlamada eğik çizgileri destekleme (#17111) (Teşekkürler @sba923!)
  • Üye otomatik uyumluluğu geliştirme (#16504) (Teşekkürler @MartinGC94!)
  • Parametreler için Enum'lara göre ValidateSet tamamlamalarının önceliğini belirleme (#15257) (Teşekkürler @MartinGC94!)
  • Tür parametreleriyle genel yöntemler için tür çıkarımı desteği ekleme (#16951) (Teşekkürler @MartinGC94!)
  • Tür çıkarımı ve tamamlamalarını geliştirme (#16963) (Teşekkürler @MartinGC94!)
    • için tamamlama sonuçlarında yöntemlerin gösterilmesine izin verir ForEach-Object -MemberName
    • gibi void döndüren ifadelerin tamamlanmasını engeller ([void](""))
    • Sınıf tamamlama AST'yi temel alarak varsayılan olmayan Sınıf oluşturucularının gösterilmesine izin verir
  • (#17716) için $_ tür çıkarımı geliştirin (Teşekkürler@MartinGC94!)
  • ICollection için tür çıkarımı düzeltilir (#17752) (Teşekkürler@MartinGC94!)
  • Değişkenleri tamamlarken ayraçların kaldırılmasını engelle (#17751) (Teşekkürler @MartinGC94!)
  • Sözlükler için dizin ifadeleri için tamamlama ekleme (#17619) (Teşekkürler @MartinGC94!)
  • Öznitelik belirteçleri için tür tamamlama düzeltmesi (#17484) (Teşekkürler @MartinGC94!)
  • Dinamik parametre sekmesinin tamamlanmasını geliştirme (#17661) (Teşekkürler @MartinGC94!)
  • Değerin önünde parametreyi tamamlarken konumsal parametreleri bağlamaktan kaçının (#17693) (Teşekkürler @MartinGC94!)

Hata işleme özellikleri geliştirildi

  • Yeniden yönlendirmelerle komut ifadesi için doğru ayarlama $? (#16046)
  • Kullanırken $PSNativeCommandUseErrorActionPreference bir atama hatasını düzeltme (#15993)
  • Yerel komut hata işlemesini isteğe bağlı olarak yerine ErrorActionPreference getirin (#15897)
  • Sıfır olmayan çıkış kodu ErrorRecord (#16108) için yürütülebilir TargetObject yolu belirtin (Teşekkürler@rkeithhill!)

Oturum ve uzaktan iletişim geliştirmeleri

  • OpenSSH seçeneklerinin doğrudan geçirilmesine izin vermek için SSH üzerinden PSRP komutlarına ekleyin -Options (#12802) (Teşekkürler @BrannenGH!)
  • Dosyasında tanımlanan .pssc oturum yapılandırmasıyla yeni bir işlem başlatmaya izin vermek için parametresini pwsh ekleyin -ConfigurationFile (#17447)
  • Windows dışı platformlarda kullanmak New-PSSessionConfigurationFile için destek ekleme (#17447)

Cmdlet'ler güncelleştirildi

  • Web cmdlet'lerine parametre ekleme -HttpVersion (#15853) (Teşekkürler @hayhay27!)
  • Açık uçlu giriş etiketleri için web cmdlet'lerine destek ekleme (#16193) (Teşekkürler @farmerau!)
  • En fazla 100'e izin vermek için düzeltme ConvertTo-Json -Depth (#16197) (Teşekkürler @KevRitchie!)@rkeithhill!)
  • İfadeyle çağrı Invoke-Command yaparken değişken işlemeyi $using: geliştirme (#16113) (Teşekkürler @dwtaber!)
  • Invoke-Command Komutu yerel olarak (#16545) çağırırken katı modun belirtilmesine izin vermek için öğesini ekleyin -StrictMode (Teşekkürler@Thomas-Yu!)
  • Kolay kaynak temizlemeye izin vermek için , ve end betik bloğuna beginprocesseş olarak blok ekleyin clean (#15177)
  • Cmdlet'e Get-CimClass anahtar ekleme -Amended (#17477) (Teşekkürler@iSazonov)
  • Sıralı karma tablo kullanacak şekilde değiştirildi ConvertFrom-Json -AsHashtable (#17405)
  • göndermeden Out-GridView önce dizelerdeki ANSI kaçış dizileri kaldırıldı (#17664)
  • (#17621) öğesine New-TimeSpan Milisaniye parametresi eklendi (Teşekkürler@NoMoreFood!)
  • Yöntem tanımlarını ve aşırı yüklemelerini görüntülerken isteğe bağlı parametreleri göster (#13799) (Teşekkürler @eugenesmlv!)
  • Geçerli çalışma dizini artık mevcut olmasa bile komutların yürütülmesine izin ver (#17579)
  • (#16134) ile Set-AuthenticodeSignature -TimeStampServer HTTPS desteği ekleme (Teşekkürler@Ryan-Hutchison-USAF!)
  • Geçerli kültürü kullanarak tablodaki ondalık sayıları işleme (#17650)
  • OrderedDictionary için sıralı tür hızlandırıcısı ekleme (#17804) (Teşekkürler@fflaten!)
  • Windows için eski bağımsız değişken bağlama davranışına ekleme find.exe (#17715)
  • pwsh'ye anahtar ekleme -noprofileloadtime (#17535) (Teşekkürler @rkeithhill!)

Değişikliklerin tam listesi için GitHub deposundaki Değişiklik Günlüğü'ne bakın.

Deneysel Özellikler

PowerShell 7.3'te aşağıdaki deneysel özellikler temel bir hal aldı:

  • PSAnsiRenderingFileInfo - Bu özellik üyeyi $PSStyle.FileInfo ekler ve belirli dosya türlerinin renklendirilmesine olanak tanır.

  • PSCleanBlock- Kolay kaynak temizlemeye izin vermek için beginprocess, ve end için eş olarak betik bloğuna blok eklerclean.

  • PSAMSIMethodInvocationLogging - .NET yöntemi üyelerinin tüm çağrılarını içerecek şekilde, inceleme için AMSI'ye gönderilen verileri genişletir.

  • PSNativeCommandArgumentPassing - PowerShell artık yerel yürütülebilir dosyayı çağırırken dizeyi yeniden oluşturmanın eski mekanizması yerine StartProcessInfo nesnesinin ArgumentList özelliğini kullanıyor.

    PowerShell 7.3.1, Windows'ta bağımsız değişken geçirme stilini kullanan Legacy yerel komutlar listesine eklersqlcmd.exe.

  • PSExec- Windows dışı sistemler için uyumluluk sağlamak exec için yeni Switch-Process cmdlet'i (diğer adexec) ekler.

    PowerShell 7.3.1, diğer adı ile sarmalayan Switch-Processbir işlev olarak değiştirdiexec. işlevi, yanlışlıkla WithCommand parametresine bağlı olabilecek yerel komuta parametre geçirmenizi sağlar.

PowerShell 7.3 aşağıdaki deneysel özellikleri sunar:

  • PSNativeCommandErrorActionPreference - Yerel komutlar tarafından oluşturulan hataların PowerShell hataları olmasını sağlamak için değişkenini ekler $PSNativeCommandUseErrorActionPreference .

PowerShell 7.3 aşağıdaki deneysel özellikleri kaldırdı:

  • PSNativePSPathResolution deneysel özellik artık desteklenmiyor.
  • PSStrictModeAssignment deneysel özellik artık desteklenmiyor.

Deneysel Özellikler hakkında daha fazla bilgi için bkz . Deneysel Özellikleri Kullanma.