Apa yang Baru di PowerShell 7.2

PowerShell 7.2 adalah rilis Long Term Servicing (LTS) berikutnya yang dibangun di .NET 6.0.

PowerShell 7.2 menyertakan fitur, pembaruan, dan perubahan yang melanggar berikut.

  • Paket alat penginstal universal baru untuk distribusi Linux yang paling didukung
  • Dukungan Microsoft Update di Windows
  • 2 fitur eksperimental baru
    • Dukungan meneruskan argumen perintah asli yang disempurnakan
    • Dukungan warna ANSI FileInfo
  • Penyelesaian Tab yang Disempurnakan
  • PSReadLine 2.1 dengan Predictive IntelliSense
  • 7 fitur eksperimental yang dipromosikan ke mainstream dan 1 dihapus
  • Memisahkan DSC dari PowerShell 7 untuk mengaktifkan peningkatan di masa mendatang
  • Beberapa perubahan yang melanggar untuk meningkatkan kegunaan

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

Pembaruan penginstalan

Periksa instruksi penginstalan untuk sistem operasi pilihan Anda:

Selain itu, PowerShell 7.2 mendukung Versi ARM64 Windows dan macOS serta ARM32 dan ARM64 versi Debian dan Ubuntu.

Untuk informasi terbaru tentang sistem operasi yang didukung dan siklus hidup dukungan, lihat Siklus Hidup Dukungan PowerShell.

Paket penginstalan universal baru untuk distribusi Linux

Sebelumnya, kami membuat paket alat penginstal terpisah untuk setiap versi CentOS, RHEL, Debian, dan Ubuntu yang didukung. Paket alat penginstal universal menggabungkan delapan paket yang berbeda menjadi satu, sehingga penginstalan di Linux lebih sederhana. Paket universal menginstal dependensi yang diperlukan untuk distribusi target dan membuat perubahan khusus platform untuk membuat PowerShell berfungsi.

Dukungan Microsoft Update untuk Windows

PowerShell 7.2 menambahkan dukungan untuk Microsoft Update. Saat mengaktifkan fitur ini, Anda akan mendapatkan pembaruan PowerShell 7 terbaru dalam alur manajemen Windows Update (WU) tradisional Anda, baik itu dengan Windows Update untuk Bisnis, WSUS, SCCM, atau dialog WU interaktif di Pengaturan.

Paket MSI PowerShell 7.2 menyertakan opsi baris perintah berikut:

  • USE_MU - Properti ini memiliki dua nilai yang mungkin:
    • 1 (default) - Memilih memperbarui melalui Microsoft Update atau WSUS
    • 0 - Jangan memilih untuk memperbarui melalui Microsoft Update atau WSUS
  • ENABLE_MU
    • 1(default) - Memilih menggunakan Microsoft Update Updates otomatis atau Windows Update
    • 0- Jangan memilih menggunakan Microsoft Update Updates Otomatis atau Windows Update

Fitur Eksperimental

Fitur eksperimental berikut sekarang menjadi fitur utama dalam rilis ini:

Fitur eksperimental berikut ditambahkan dalam rilis ini:

  • PSNativeCommandArgumentPassing - Ketika fitur eksperimental ini diaktifkan PowerShell menggunakan properti ArgumentList dari objek StartProcessInfo daripada mekanisme rekonstruksi string kami saat ini saat memanggil executable asli. Fitur ini menambahkan variabel $PSNativeCommandArgumentPassing otomatis baru yang memungkinkan Anda memilih perilaku saat runtime.

  • PSAnsiRenderingFileInfo - Izinkan kustomisasi warna ANSI informasi file.

  • PSLoadAssemblyFromNativeCode - Mengekspos API untuk memungkinkan pemuatan rakitan dari kode asli.

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

Penyelesaian Tab yang Disempurnakan

PowerShell 7.2 mencakup beberapa penyempurnaan Penyelesaian Tab. Perubahan ini termasuk bugfix dan meningkatkan kegunaan.

  • Memperbaiki penyelesaian tab untuk topik yang tidak dilokalkan tentang* (#15265) (Terima kasih @MartinGC94)
  • Memperbaiki splatting yang diperlakukan sebagai parameter posisi dalam penyelesaian (#14623) (Terima kasih @MartinGC94)
  • Tambahkan penyelesaian untuk kata kunci bantuan berbasis komentar (#15337) (Terima kasih @MartinGC94)
  • Tambahkan penyelesaian untuk pernyataan Requires (#14596) (Terima kasih @MartinGC94)
  • Menambahkan penyelesaian tab untuk Lihat parameter cmdlet Format-* (#14513) (Terima kasih @iSazonov)

PSReadLine 2.1 Prediktif Intellisense

PSReadLine 2.1 memperkenalkan CommandPrediction API yang membuat kerangka kerja untuk menyediakan prediksi untuk penyelesaian baris perintah. API memungkinkan pengguna untuk menemukan, mengedit, dan menjalankan perintah penuh berdasarkan prediksi yang cocok dari riwayat pengguna.

IntelliSense prediktif dinonaktifkan secara default. Untuk mengaktifkan prediksi, jalankan perintah berikut:

Set-PSReadLineOption -PredictionSource History

Memisahkan DSC dari PowerShell 7 untuk mengaktifkan peningkatan di masa mendatang

Modul PSDesiredStateConfiguration dihapus dari paket PowerShell 7.2 dan sekarang diterbitkan ke Galeri PowerShell. Ini memungkinkan modul PSDesiredStateConfiguration dikembangkan secara independen dari PowerShell dan pengguna dapat mencampur dan mencocokkan versi PowerShell dan PSDesiredStateConfiguration untuk lingkungan mereka. Untuk menginstal PSDesiredStateConfiguration 2.0.5 dari Galeri PowerShell:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Penting

Pastikan untuk menyertakan parameter MaximumVersion atau Anda dapat menginstal PSDesireStateConfiguration versi 3 (atau lebih tinggi) yang berisi perbedaan signifikan.

Pembaruan mesin

  • Tambahkan LoadAssemblyFromNativeMemory fungsi untuk memuat rakitan dalam memori dari host PowerShell asli dengan awakecoding ยท Permintaan Pull #14652

Memutus Perubahan dan Penyempurnaan

  • PSDesiredStateConfiguration dihapus dari paket PowerShell 7.2
  • Membuat paket PowerShell Linux deb dan RPM universal (#15109)
  • Fitur PSNativeCommandArgumentPassingeksperimental : Gunakan ArgumentList untuk pemanggilan native executable (#14692)
  • Pastikan -PipelineVariable diatur untuk semua output dari cmdlet skrip (#12766)
  • Keluarkan peringatan jika ConvertTo-Json melebihi -Nilai kedalaman (#13692)
  • Hapus alias D dari sakelar direktori CL-General #15171
  • Meningkatkan deteksi jenis nilai yang dapat diubah (#12495)
  • Batasi New-Object dalam mode NoLanguage di bawah kunci (#14140)
  • Menerapkan konfigurasi Tolak AppLocker sebelum konfigurasi Bypass Kebijakan Eksekusi (#15035)
  • Mengubah FileSystemInfo.Target dari CodeProperty menjadi AliasProperty yang menunjuk ke FileSystemInfo.LinkTarget (#16165)