Apa yang Baru di PowerShell 7.4 (pratinjau)

PowerShell 7.4-preview.2 menyertakan fitur, pembaruan, dan perubahan yang melanggar berikut. PowerShell 7.4 sekarang dibangun di .NET 8.0.0-preview.2.

Untuk daftar lengkap perubahan, lihat Log Perubahan di repositori GitHub.

Perubahan mencolok

  • Gambar docker server nano tidak tersedia untuk rilis ini
  • Menambahkan parameter ProgressAction ke parameter umum
  • Perbarui beberapa API PowerShell untuk melempar ArgumentException alih-alih ArgumentNullException ketika argumen adalah string kosong (#19215) (Terima kasih @xtqqczze!)

Pembaruan alat penginstal

Paket MSI Windows sekarang menyediakan opsi untuk menonaktifkan telemetri PowerShell selama penginstalan. Untuk informasi selengkapnya, lihat Menginstal paket msi dari baris perintah.

Peningkatan penyelesaian tab

Banyak terima kasih kepada @MartinGC94 untuk semua pekerjaan dalam meningkatkan penyelesaian tab.

  • Memperbaiki masalah saat menyelesaikan perintah pertama dalam skrip dengan ekspresi array kosong ([#18355)
  • Memperbaiki penyelesaian argumen posisi (#17796)
  • Prioritaskan kumpulan parameter default saat menyelesaikan argumen posisi (#18755)
  • Meningkatkan pengikatan pseudo untuk parameter dinamis (#18030)
  • Meningkatkan inferensi jenis kunci hashtable (#17907)
  • Memperbaiki kesalahan inferensi jenis untuk pernyataan pengembalian kosong (#18351)
  • Meningkatkan inferensi jenis untuk Get-Random (#18972)
  • Memperbaiki inferensi jenis untuk semua variabel cakupan (#18758)
  • Meningkatkan enumerasi jenis yang disimpulkan dalam alur (#17799)
  • Menambahkan penyelesaian untuk nilai dalam perbandingan saat membandingkan Enum (#17654)
  • Menambahkan penyelesaian penetapan properti untuk enum (#19178)
  • Memperbaiki penyelesaian untuk properti variabel PSCustomObject (#18682)
  • Memperbaiki penyelesaian anggota dalam argumen atribut (#17902)
  • Memperbaiki penyelesaian anggota kelas untuk kelas dengan jenis dasar (#19179)
  • Menambahkan penyelesaian untuk Menggunakan kata kunci (#16514)

Peningkatan cmdlet dan mesin

Perbarui ke cmdlet Web - Banyak berkat @CarloToso untuk semua pekerjaan dalam meningkatkan cmdlet web.

  • Cmdlet web mendapatkan interval Coba Lagi Setelah dari header respons jika kode status adalah 429 (#18717)
  • Cmdlet web mengatur pengodean charset default ke UTF8 (#18219)
  • Mempertahankan WebSession.MaximumRedirection dari perubahan (#19190)
  • WebCmdlets mengurai deklarasi XML untuk mendapatkan nilai pengodean, jika ada. (#18748)
  • Memperbaiki menggunakan xml -Body di webcmdlets tanpa pengodean (#19281)
  • Menyesuaikan perilaku metode PUT ke POST one untuk tipe konten default di WebCmdlets (#19152)
  • Mempertimbangkan ContentType dari Header di WebCmdlets (#19227)
  • Izinkan untuk mempertahankan metode HTTP asli dengan menambahkan -PreserveHttpMethodOnRedirect ke cmdlet Web (#18894)
  • Webcmdlets menampilkan kesalahan pada pengalihan https ke http (#18595)
  • Menambahkan sakelar AllowInsecureRedirect ke cmdlet Web (#18546)
  • Meningkatkan pesan verbose di cmdlet web ketika panjang konten tidak diketahui (#19252)
  • Bangun URI relatif untuk tautan dari respons di Invoke-WebRequest (#19092)
  • Memperbaiki pengalihan untuk -CustomMethod POST di WebCmdlets (#19111)
  • Buang respons sebelumnya di Webcmdlets (#19117)
  • Meningkatkan format kesalahan xml dan json Invoke-WebRequest (#18837)
  • Tambahkan parameter ValidateNotNullOrEmpty ke Parameter OutFile dan InFile webCmdlets (#19044)
  • Daftar header pembaruan HttpKnownHeaderNames (#18947)
  • Invoke-RestMethod -FollowRelLink memperbaiki tautan yang berisi koma (#18829)
  • Memperbaiki bug dengan mengelola pengalihan dan KeepAuthorization di cmdlet Web (#18902)
  • Menambahkan StatusCode ke HttpResponseException (#18842)
  • Mendukung koneksi persisten HTTP di Web Cmdlets (#19249) (Terima kasih @stevenebutler!)

Cmdlet lainnya

  • Tambahkan parameter Path dan LiteralPath ke Test-Json cmdlet (#19042) (Terima kasih @ArmaanMcleod!)
  • Tambahkan parameter NoHeader ke ConvertTo-Csv dan Export-Csv cmdlet (#19108) (Terima kasih @ArmaanMcleod!)
  • Tambahkan parameter Confirm dan WhatIf ke Stop-Transcript(#18731) (Terima kasih @JohnLBevan!)
  • Menambahkan parameter FuzzyMinimumDistance ke Get-Command (#18261)
  • Membuat parameter Pengodean dapat mengambil ANSI pengodean di PowerShell (#19298) (Terima kasih @CarloToso!)
  • Menambahkan kemajuan ke Copy-Item (#18735)
  • Update-Help sekarang melaporkan kesalahan saat menggunakan budaya implisit pada sistem non-AS. (#17780) (Terima kasih @dkaszews!)

Updates ke$PSStyle

  • Menambahkan properti Dim dan DimOff (#18653)
  • Menambahkan metode statis ke kelas PSStyle yang memetakan nilai ConsoleColor latar depan dan latar belakang ke urutan escape ANSI (#17938)
  • Properti pemformatan baru ditambahkan oleh fitur eksperimental

Pembaruan Mesin Lainnya

  • Membuat kelas PowerShell tidak berafiliasi dengan Runspace saat mendeklarasikan NoRunspaceAffinity atribut (#18138)
  • ValidateNotNullOrWhiteSpace Tambahkan atribut (#17191) (Terima kasih@wmentha!)
  • Tambahkan sqlcmd ke daftar untuk meneruskan argumen warisan (#18559)
  • Tambahkan fungsi cd~ (#18308) (Terima kasih @GigaScratch!)

Fitur Eksperimental

PowerShell 7.4 memperkenalkan fitur eksperimental berikut:

  • PSCustomTableHeaderLabelDecoration - Tambahkan diferensiasi pemformatan untuk label header tabel yang bukan anggota properti.
    • Fitur ini juga menambahkan properti CustomTableHeaderLabel ke $PSStyle.Formatting yang memungkinkan Anda mengubah pemformatan label header.
  • PSFeedbackProvider - Mengganti kerangka kerja saran yang dikodekan secara permanen dengan penyedia umpan balik yang dapat diperluas.
    • Fitur ini juga menambahkan properti FeedbackProvider dan FeedbackText ke $PSStyle.Formatting yang memungkinkan Anda mengubah pemformatan pesan umpan balik.
  • PSModuleAutoLoadSkipOfflineFiles - Penemuan modul sekarang melewati file yang ditandai oleh penyedia cloud sebagai tidak sepenuhnya pada disk.
  • PSCommandWithArgs - Menambahkan dukungan untuk meneruskan argumen ke perintah sebagai string tunggal

PowerShell 7.4 mengubah fitur eksperimental berikut:

Untuk informasi selengkapnya tentang Fitur Eksperimental, lihat Menggunakan Fitur Eksperimental.