Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pada 11 November 2020 kami mengumumkan ketersediaan umum PowerShell 7.1. Membangun fondasi yang ditetapkan di PowerShell 7.0, upaya kami berfokus pada masalah komunitas dan mencakup sejumlah peningkatan dan perbaikan. Kami berkomitmen untuk memastikan bahwa PowerShell tetap menjadi platform yang stabil dan berkinerja.
PowerShell 7.1 menyertakan fitur, pembaruan, dan perubahan terbaru berikut.
- PSReadLine 2.1.0, yang mencakup IntelliSense Prediktif
- PowerShell 7.1 telah diterbitkan ke Microsoft Store
- Paket penginstal diperbarui untuk versi OS baru dengan dukungan untuk ARM64
- 4 fitur eksperimental baru dan 2 fitur eksperimental yang dipromosikan ke arus utama
- Beberapa perubahan merusak untuk meningkatkan kegunaan
Untuk daftar lengkap perubahan, lihat CHANGELOG di repositori GitHub.
PSReadLine 2.1.0
PowerShell 7.1 juga menyertakan PSReadLine 2.1.0. Versi ini termasuk IntelliSense Prediktif. Untuk informasi selengkapnya tentang fitur IntelliSense Prediktif, lihat pengumuman di blog PowerShell.
Paket penginstal Microsoft Store
PowerShell 7.1 telah diterbitkan ke Microsoft Store. Anda dapat menemukan rilis PowerShell di situs web Microsoft Store atau di aplikasi Store di Windows.
Manfaat paket Microsoft Store:
- Pembaruan otomatis yang dibangun langsung ke Windows
- Terintegrasi dengan mekanisme distribusi perangkat lunak lain seperti Intune dan SCCM
Nota
Pengaturan konfigurasi tingkat sistem apa pun yang disimpan tidak $PSHOME dapat dimodifikasi. Ini termasuk konfigurasi WSMAN. Ini mencegah sesi jarak jauh tersambung ke instalasi PowerShell berbasis Store. Konfigurasi tingkat pengguna dan remoting SSH didukung.
Pemasang lainnya
Untuk informasi up-totanggal lebih lanjut tentang sistem operasi yang didukung dan siklus hidup dukungan, lihat Siklus Hidup Dukungan PowerShell.
Periksa petunjuk instalasi untuk sistem operasi pilihan Anda:
Selain itu, PowerShell 7.1 mendukung rasa ARM32 dan ARM64 dari Debian, Ubuntu, dan ARM64 Alpine Linux.
Meskipun tidak didukung secara resmi, komunitas juga telah menyediakan paket untuk Arch dan Kali Linux.
Nota
Debian 10+, CentOS 8+, Ubuntu 20.04, Alpine, dan Arm saat ini tidak mendukung jarak jauh WinRM. Untuk detail tentang menyiapkan jarak jauh berbasis SSH, lihat Jarak Jauh PowerShell melalui SSH.
Fitur Eksperimental
Untuk informasi selengkapnya tentang Fitur Eksperimental, lihat Menggunakan Fitur Eksperimental.
Fitur eksperimental berikut sekarang menjadi fitur utama dalam rilis ini:
Fitur eksperimental berikut ditambahkan dalam rilis ini:
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
- PowerShell 7.1 memperluas fitur eksperimental ini untuk menambahkan parameter Runspace ke semua
*-PSBreakpointcmdlet. Parameter Runspace menentukan objek Runspace untuk berinteraksi dengan titik henti di runspace yang ditentukan.
- PowerShell 7.1 memperluas fitur eksperimental ini untuk menambahkan parameter Runspace ke semua
PSNativePSPathResolution - Fitur ini memungkinkan Anda meneruskan jalur penyedia PowerShell ke perintah asli yang tidak mendukung sintaks jalur PowerShell.
PSCultureInvariantReplaceOperator - Ketika operan sebelah kiri dalam
-replacepernyataan operator bukan string, operan tersebut dikonversi menjadi string. Dengan fitur yang diaktifkan, konversi tidak menggunakan setelan Budaya untuk konversi string.PSSubsystemPluginModel meletakkan dasar untuk mendukung plug-in IntelliSense Prediktif di masa mendatang.
Perubahan dan Peningkatan Terbaru
Perilaku perbandingan string berubah di .NET 5.0
PowerShell 7.1 dibangun di atas .NET 5.0, yang memperkenalkan perubahan besar berikut:
Pada .NET 5.0, perbandingan string invarian budaya mengabaikan karakter kontrol non-pencetakan.
Misalnya, dua string berikut dianggap identik:
# Escape sequence "`a" is Ctrl-G or [char]7 'Food' -eq "Foo`ad"TrueMemperbaiki
$?agar tidak ketika$falseperintah asli menulis kestderr(#13395)Adalah umum bagi perintah native untuk menulis
stderrtanpa bermaksud menunjukkan kegagalan. Dengan perubahan$?ini diatur ke$falsehanya ketika perintah asli juga memiliki kode keluar bukan nol. Perubahan ini tidak terkait dengan fiturPSNotApplyErrorActionToStderreksperimental .Buat
$ErrorActionPreferencetidak memengaruhistderroutput perintah asli (#13361)Adalah umum bagi perintah native untuk menulis
stderrtanpa bermaksud menunjukkan kegagalan. Dengan perubahan ini,stderroutput masih ditangkap dalam objek ErrorRecord , tetapi runtime tidak lagi berlaku$ErrorActionPreferencejika ErrorRecord berasal dari perintah asli.Ganti nama
-FromUnixTimemenjadi-UnixTimeSecondsonGet-Dateuntuk mengizinkan input waktu Unix (#13084) (Terima kasih @aetos382!)Parameter ditambahkan
-FromUnixTimeselama 7.1-preview.2. Parameter diganti namanya agar lebih cocok dengan jenis data. Parameter ini mengambil nilai bilangan bulat yang mewakili dalam detik sejak 1 Januari 1970, 0:00:00.Contoh ini mengonversi waktu Unix (diwakili oleh jumlah detik sejak 1970-01-01 0:00:00) menjadi DateTime.
Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AMIzinkan parameter bernama yang ditentukan secara eksplisit untuk menggantikan parameter yang sama dari splatting hashtable (#13162)
Dengan perubahan ini, parameter bernama dari splatting dipindahkan ke akhir daftar parameter sehingga terikat setelah semua parameter bernama yang ditentukan secara eksplisit diikat. Pengikatan parameter untuk fungsi sederhana tidak memunculkan kesalahan ketika parameter bernama tertentu tidak dapat ditemukan. Parameter bernama yang tidak diketahui terikat pada
$argsparameter fungsi sederhana. Memindahkan splatting ke akhir daftar argumen mengubah urutan parameter muncul di$args.Contohnya:
function SimpleTest { param( $Name, $Path ) "Name: $Name; Path: $Path; Args: $args" }Dalam perilaku sebelumnya, MyPath tidak terikat karena
-Pathini adalah argumen ketiga dalam daftar argumen. ## Jadi akhirnya dimasukkan ke dalam '$args' bersama denganBlah = "World"PS> $hash = @{ Name = "Hello"; Blah = "World" } PS> SimpleTest @hash "MyPath" Name: Hello; Path: ; Args: -Blah: World MyPathDengan perubahan ini, argumen dari
@hashdipindahkan ke akhir daftar argumen. MyPath menjadi argumen pertama dalam daftar, sehingga terikat pada-Path.PS> SimpleTest @hash "MyPath" Name: Hello; Path: MyPath; Args: -Blah: WorldMembuat parameter
-Qualifiersakelar tidak posisisional untukSplit-Path(#12960) (Terima kasih @yecril71pl!)Selesaikan direktori kerja sebagai jalur literal ketika
Start-Processtidak ditentukan (#11946) (Terima kasih @NoMoreFood!)Buat
-OutFileparameter di cmdlet web agar berfungsi seperti-LiteralPath(#11701) (Terima kasih @iSazonov!)Perbaiki pengikatan parameter string untuk
BigIntegerliteral numerik (#11634) (Terima kasih @vexx32!)Di Windows,
Start-Processmembuat lingkungan proses dengan semua variabel lingkungan dari sesi saat ini, menggunakan-UseNewEnvironmentmenciptakan lingkungan proses default baru (#10830) (Terima kasih @iSazonov!)Jangan membungkus hasil pengembalian saat
PSObjectmengonversi aScriptBlockke delegasi (#10619)Ketika a
ScriptBlockdikonversi ke jenis delegasi untuk digunakan dalam konteks C#, membungkus hasilnya dalam aPSObjectmembawa masalah yang tidak diperlukan:- Ketika nilai dikonversi ke jenis pengembalian delegasi, pada
PSObjectdasarnya akan dibongkar. Jadi ituPSObjecttidak diperlukan. - Ketika jenis pengembalian delegasi adalah
object, itu akan dibungkus dalam aPSObjectsehingga sulit untuk dikerjakan dalam kode C#.
Setelah perubahan ini, objek yang ditampilkan adalah objek yang mendasarinya.
- Ketika nilai dikonversi ke jenis pengembalian delegasi, pada