Memperkenalkan PowerShell 7.0

Hari ini kami dengan bangga mengumumkan rilis PowerShell 7.0 versi publik (GA)  ! Pertama-tama, kami ingin mengucapkan terima kasih kepada  banyak kontributor kami untuk membuat rilis ini dimungkinkan dengan berbagi kode, tes, dokumentasi, dan umpan balik tentang masalah. PowerShell 7 tidak akan mungkin terjadi tanpa bantuan Anda.



Apa itu PowerShell 7?


Untuk pemula, PowerShell 7 adalah pembaruan utama terbaru untuk PowerShell, alat otomatisasi lintas-platform (Windows, Linux, dan macOS) yang dioptimalkan untuk bekerja dengan data terstruktur (mis. JSON, CSV, XML, dll.), REST API dan model objek. PowerShell termasuk shell baris perintah, bahasa skrip berorientasi objek, dan seperangkat alat untuk menjalankan skrip / cmdlet dan modul pengelolaan.

Tiga tahun lalu, kami mengumumkan PowerShell Core 6 sebagai versi baru PowerShell. Berdasarkan .NET Core, PowerShell Core memperkenalkan dukungan lintas platform untuk Windows, macOS dan Linux, PowerShell Remoting berbasis SSH, secara signifikan meningkatkan dukungan REST dan JSON, wadah Docker resmi, dan banyak lagi. Selain itu, ini adalah rilis pertama PowerShell, yang dibuat di bawah lisensi open source (MIT), yang mendorong penggemar dan pemula PowerShell yang lama untuk berkontribusi secara langsung ke kode sumber, tes, dan dokumentasi.

Setelah tiga rilis PowerShell Core yang berhasil, kami senang melihat PowerShell 7, bab selanjutnya dalam pengembangan berkelanjutan dari PowerShell. Di PowerShell 7, selain banyak cmdlet / API baru dan perbaikan bug, kami memperkenalkan sejumlah fitur baru, termasuk:

  • Paralelisasi pipa dengan ForEach-Object-Parallel
  • Operator baru:
    • Operator Ternary: a? b: c
    • Operator rantai pipa: || dan &&
    • Tidak ada pernyataan penggabungan: ?? dan ?? =
  • Tampilan kesalahan yang disederhanakan dan dinamis dan cmdlet Get-Error untuk lebih mudah menyelidiki kesalahan
  • Tingkat kompatibilitas yang memungkinkan pengguna untuk mengimpor modul dalam sesi PowerShell Windows implisit
  • Pembaruan pemberitahuan otomatis
  • Kemampuan untuk memanggil sumber daya DSC langsung dari PowerShell 7 (percobaan)

Untuk daftar fitur dan perbaikan yang lebih lengkap, lihat di  sini .

Memutakhirkan dari PowerShell Core 6.x ke 7.0 juga berarti meningkatkan dari .NET Core 2.x ke 3.1. .NET Core 3.1 mengembalikan banyak .NET Framework APIs (terutama pada Windows), memberikan kompatibilitas mundur yang jauh lebih besar dengan modul Windows PowerShell yang ada. Ini termasuk banyak modul pada Windows yang memerlukan fungsionalitas GUI seperti Out-GridView dan Show-Command, serta banyak modul manajemen peran yang dikirimkan sebagai bagian dari Windows. Untuk informasi lebih lanjut, lihat bagan kompatibilitas modul kami , yang menunjukkan bagaimana Anda dapat menggunakan modul modern terbaru yang bekerja dengan PowerShell 7.

Jika Anda belum dapat menggunakan PowerShell Core 6.x di masa lalu karena masalah kompatibilitas modul, ini mungkin situasi ketika Anda mengambil keuntungan dari beberapa fitur yang telah kami sediakan sejak peluncuran proyek Core!

Keren! Bagaimana cara mendapatkan PowerShell 7?


Untuk memulai, lihat dokumentasi instalasi untuk  WindowsmacOS , atau  Linux . Mungkin ada beberapa metode instalasi tergantung pada versi OS Anda dan format paket yang disukai.

Jika Anda sudah tahu apa yang harus dilakukan dan hanya mencari paket biner (baik itu MSI, ZIP, RPM, atau lainnya), buka tag versi terbaru kami di GitHub .

Atau, Anda dapat menggunakan salah satu dari banyak gambar Docker kami . Untuk informasi lebih lanjut tentang cara menggunakannya, lihat repositori PowerShell-Docker kami .

Sistem operasi apa yang didukung PowerShell 7?


PowerShell 7 mendukung  sistem operasi  x64 berikut , termasuk:

  • Windows 7, 8.1, dan 10
  • Windows Server 2008 R2, 2012, 2012 R2, 2016, dan 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04+
  • openSUSE 15+
  • Alpine Linux 3.8+

Selain itu, kami mendukung versi Debian dan Ubuntu ARM32 dan ARM64, serta ARM64 Alpine Linux.

Meskipun tidak didukung secara resmi, komunitas ini juga menyediakan paket untuk Arch dan Kali Linux .

Jika Anda memerlukan dukungan untuk platform yang tidak ada dalam daftar ini, kirim permintaan distribusi ke GitHub (walaupun harus dicatat bahwa pada akhirnya kami terbatas pada fakta bahwa .NET Core 3.1 didukung ).

Tunggu, apa yang terjadi pada PowerShell "Core"?


Seperti .NET dengan .NET 5 , kami percaya bahwa PowerShell 7 menandai akhir jalur kami untuk kompatibilitas mundur maksimum dengan Windows PowerShell. Dalam hal ini, kami percaya bahwa PowerShell 7 dan yang lebih baru adalah satu-satunya PowerShell yang didukung di masa mendatang.

PowerShell 7 akan terus ditampilkan dalam edisi Core untuk membedakan 6.x / 7.x dari Windows PowerShell, tetapi secara keseluruhan Anda akan melihat bahwa di masa depan itu akan disebut sebagai "PowerShell 7".

Produk Microsoft mana yang sudah mendukung PowerShell 7?


Modul apa pun yang sudah didukung oleh PowerShell Core 6.x juga didukung di PowerShell 7, termasuk:


Pada Windows, kami juga menambahkan parameter -GunakanWindowsPowerShell ke Modul Impor untuk menyederhanakan transisi ke PowerShell 7 bagi mereka yang menggunakan modul yang tidak kompatibel. Opsi ini menciptakan modul proksi di PowerShell 7 yang menggunakan proses Windows PowerShell lokal untuk secara implisit menjalankan cmdlet yang terkandung dalam modul ini. Untuk informasi lebih lanjut tentang fitur ini, lihat dokumentasi Modul Impor .

Untuk modul yang masih tidak kompatibel, kami bekerja dengan sejumlah rekan kerja untuk menambahkan dukungan bawaan untuk PowerShell 7, termasuk Microsoft Graph, Office 365, dan lainnya.

Azure Cloud Shell telah diperbarui untuk menggunakan PowerShell 7, sementara yang lain, seperti .NET Core SDK Docker wadah gambar danFitur azure akan segera diperbarui.

Apa berikutnya?


Kami sudah bekerja keras pada PowerShell 7.1, dan Anda dapat mengharapkan pratinjau pertamanya dalam waktu dekat, penuh dengan fitur dan perbaikan baru yang tidak termasuk dalam 7.0. Nantikan blog roadmap yang lebih rinci yang menguraikan penelitian kami saat ini dan keinginan untuk 7.1.

Seperti disebutkan di atas, kami juga pindah ke frekuensi rilis tahunan untuk lebih cocok dengan versi .NET dan siklus hidup dukungan mereka (rilis pra-rilis terus dirilis kira-kira setiap bulan).

All Articles