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.
Dirancang untuk lingkungan cloud, lokal, dan hibrid, PowerShell 7 dikemas dengan penyempurnaan dan fitur baru.
- Menginstal dan menjalankan berdampingan dengan Windows PowerShell
- Kompatibilitas yang disempurnakan dengan modul Windows PowerShell yang ada
- Fitur bahasa baru, seperti operator ternary dan
ForEach-Object -Parallel
- Peningkatan performa
- Kendali jarak jauh berbasis SSH
- Interoperabilitas lintas platform
- Dukungan untuk kontainer Docker
PowerShell 7 bekerja berdampingan dengan Windows PowerShell memungkinkan Anda dengan mudah menguji dan membandingkan antara edisi sebelum penyebaran. Migrasi sederhana, cepat, dan aman.
PowerShell 7 didukung pada sistem operasi Windows berikut:
- Windows 10 dan 11
- Windows Server 2016, 2019, dan 2022
PowerShell 7 juga berjalan pada macOS dan beberapa distribusi Linux. Untuk daftar sistem operasi yang didukung dan informasi tentang siklus hidup dukungan, lihat Siklus Hidup Dukungan PowerShell.
Menginstal PowerShell 7
Untuk fleksibilitas dan untuk mendukung kebutuhan IT, teknisi DevOps, dan pengembang, ada beberapa opsi yang tersedia untuk menginstal PowerShell 7. Dalam kebanyakan kasus, opsi penginstalan dapat dikurangi ke metode berikut:
Nota
Paket MSI dapat disebarkan dan diperbarui dengan produk manajemen seperti Microsoft Configuration Manager. Unduh paket dari halaman Rilis GitHub.
Menyebarkan paket MSI memerlukan izin Administrator. Paket ZIP dapat disebarkan oleh pengguna mana pun. Paket ZIP adalah cara termudah untuk menginstal PowerShell 7 untuk pengujian, sebelum berkomitmen untuk menginstal sepenuhnya.
Anda juga dapat menginstal PowerShell 7 melalui Windows Store atau winget
. Untuk informasi selengkapnya tentang kedua metode ini, lihat instruksi terperinci dalam Menginstal PowerShell di Windows.
Menggunakan PowerShell 7 berdampingan dengan Windows PowerShell 5.1
PowerShell 7 dirancang untuk hidup berdampingan dengan Windows PowerShell 5.1. Fitur berikut memastikan bahwa investasi Anda di PowerShell dilindungi dan migrasi Anda ke PowerShell 7 sederhana.
- Pisahkan jalur penginstalan dan nama yang dapat dieksekusi
- Pisahkan PSModulePath
- Memisahkan profil untuk setiap versi
- Kompatibilitas modul yang ditingkatkan
- Titik akhir remoting baru
- Dukungan kebijakan grup
- Memisahkan log Peristiwa
Perbedaan dalam versi .NET
PowerShell 7.4 dibangun di .NET 8.0. Windows PowerShell 5.1 dibangun di .NET Framework 4.x. Perbedaan antara versi .NET dapat memengaruhi perilaku skrip Anda, terutama jika Anda memanggil metode .NET secara langsung. Untuk informasi selengkapnya, Perbedaan antara Windows PowerShell 5.1 dan PowerShell 7.x.
Pisahkan jalur penginstalan dan nama yang dapat dieksekusi
PowerShell 7 diinstal ke direktori baru, memungkinkan eksekusi berdampingan dengan Windows PowerShell 5.1.
Instal lokasi menurut versi:
- Windows PowerShell 5.1:
$Env:windir\System32\WindowsPowerShell\v1.0
- PowerShell 6.x:
$Env:ProgramFiles\PowerShell\6
- PowerShell 7:
$Env:ProgramFiles\PowerShell\7
Lokasi baru ditambahkan ke PATH yang memungkinkan Anda menjalankan Windows PowerShell 5.1 dan PowerShell 7. Jika Anda bermigrasi dari PowerShell 6.x ke PowerShell 7, PowerShell 6 akan dihapus dan PATH diganti.
Dalam Windows PowerShell, executable PowerShell diberi nama powershell.exe
. Dalam versi 6 ke atas, executable diberi nama pwsh.exe
. Nama baru memudahkan untuk mendukung eksekusi berdampingan dari kedua versi.
Pisahkan PSModulePath
Secara default, Windows PowerShell dan PowerShell 7 menyimpan modul pada lokasi yang berbeda. PowerShell 7 menggabungkan lokasi tersebut dalam variabel lingkungan $Env:PSModulePath
. Saat mengimpor modul berdasarkan nama, PowerShell memeriksa lokasi yang ditentukan oleh $Env:PSModulePath
. Ini memungkinkan PowerShell 7 memuat modul Core dan Desktop.
Instalasi Skop | Windows PowerShell 5.1 | PowerShell 7.0 |
---|---|---|
Modul PowerShell | $Env:windir\system32\WindowsPowerShell\v1.0\Modules |
$Env:ProgramFiles\PowerShell\7\Modules |
Pengguna telah menginstal Cakupan SemuaPengguna |
$Env:ProgramFiles\WindowsPowerShell\Modules |
$Env:ProgramFiles\PowerShell\Modules |
Pengguna telah menginstal Cakupan PenggunaSaatIni |
$HOME\Documents\WindowsPowerShell\Modules |
$HOME\Documents\PowerShell\Modules |
Contoh berikut menunjukkan nilai $Env:PSModulePath
default untuk setiap versi.
Untuk Windows PowerShell 5.1:
$Env:PSModulePath -split (';')
C:\Users\<user>\Documents\WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules
Untuk PowerShell 7:
$Env:PSModulePath -split (';')
C:\Users\<user>\Documents\PowerShell\Modules C:\Program Files\PowerShell\Modules C:\Program Files\PowerShell\7\Modules C:\Program Files\WindowsPowerShell\Modules C:\WINDOWS\System32\WindowsPowerShell\v1.0\Modules
Perhatikan bahwa PowerShell 7 menyertakan jalur Windows PowerShell dan jalur PowerShell 7 untuk menyediakan pengisian otomatis modul.
Nota
Jalur tambahan mungkin ada jika Anda telah mengubah variabel lingkungan PSModulePath atau modul atau aplikasi kustom yang diinstal.
Untuk informasi selengkapnya, lihat about_PSModulePath.
Untuk informasi selengkapnya tentang Modul, lihat about_Modules.
Memisahkan profil
Profil PowerShell adalah skrip yang dijalankan saat PowerShell dimulai. Skrip ini menyesuaikan lingkungan Anda dengan menambahkan perintah, alias, fungsi, variabel, modul, dan drive PowerShell. Skrip profil membuat penyesuaian ini tersedia di setiap sesi tanpa harus membuatnya kembali secara manual.
Jalur ke lokasi profil telah berubah di PowerShell 7.
- Di Windows PowerShell 5.1, lokasi profil adalah
$HOME\Documents\WindowsPowerShell
. - Di PowerShell 7, lokasi profil adalah
$HOME\Documents\PowerShell
.
Nama file profil juga telah berubah:
$PROFILE | Select-Object *Host* | Format-List
AllUsersAllHosts : C:\Program Files\PowerShell\7\profile.ps1
AllUsersCurrentHost : C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\<user>\Documents\PowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\<user>\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Untuk informasi selengkapnya about_Profiles.
Kompatibilitas PowerShell 7 dengan modul Windows PowerShell 5.1
Sebagian besar modul yang Anda gunakan di Windows PowerShell 5.1 sudah berfungsi dengan PowerShell 7, termasuk Azure PowerShell dan Direktori Aktif. Kami terus bekerja dengan tim lain untuk menambahkan dukungan PowerShell 7 asli untuk modul lainnya termasuk Microsoft Graph, Office 365, dan lainnya. Untuk daftar modul yang didukung saat ini, lihat Kompatibilitas modul PowerShell 7.
Nota
Di Windows, kami juga telah menambahkan switch UseWindowsPowerShell untuk Import-Module
memudahkan transisi ke PowerShell 7 bagi mereka yang menggunakan modul yang tidak kompatibel. Untuk informasi selengkapnya tentang fungsionalitas ini, lihat about_Windows_PowerShell_Compatibility.
Jarak Jauh PowerShell
PowerShell remoting memungkinkan Anda menjalankan perintah PowerShell apa pun di satu atau beberapa komputer remote. Anda dapat membuat koneksi persisten, memulai sesi interaktif, dan menjalankan skrip di komputer jarak jauh.
WS-Management jarak jauh
Windows PowerShell 5.1 ke bawah menggunakan protokol WS-Management (WSMAN) untuk negosiasi koneksi dan transportasi data. Windows Remote Management (WinRM) menggunakan protokol WSMAN. Jika WinRM telah diaktifkan, PowerShell 7 menggunakan endpoint Windows PowerShell 5.1 yang ada bernama Microsoft.PowerShell
untuk koneksi remote. Untuk memperbarui PowerShell 7 agar menyertakan titik akhir sendiri, jalankan Enable-PSRemoting
cmdlet. Untuk informasi tentang menyambungkan ke titik akhir tertentu, lihat WS-Management Jarak Jauh di PowerShell
Untuk menggunakan remoting di Windows PowerShell, komputer jarak jauh harus dikonfigurasi untuk pengelolaan jarak jauh. Untuk informasi selengkapnya, termasuk instruksi, lihat Tentang Persyaratan Jarak Jauh.
Untuk informasi selengkapnya tentang bekerja dengan jarak jauh, lihat Tentang Jarak Jauh
Kendali jarak jauh berbasis SSH
Jarak jauh berbasis SSH ditambahkan di PowerShell 6.x untuk mendukung sistem operasi lain yang tidak dapat menggunakan komponen asli Windows seperti WinRM. Penyambungan SSH menginisiasi proses host PowerShell di komputer target sebagai subsistem SSH. Untuk detail dan contoh tentang menyiapkan jarak jauh berbasis SSH di Windows atau Linux, lihat: PowerShell jarak jauh melalui SSH.
Nota
Galeri PowerShell (PSGallery) berisi modul dan cmdlet yang secara otomatis mengonfigurasi pengendalian jarak jauh berbasis SSH.
Microsoft.PowerShell.RemotingTools
Instal modul dari PSGallery dan jalankan Enable-SSH
cmdlet.
New-PSSession
Cmdlet , Enter-PSSession
, dan Invoke-Command
memiliki set parameter baru untuk mendukung koneksi SSH.
[-HostName <string>] [-UserName <string>] [-KeyFilePath <string>]
Untuk membuat sesi jarak jauh, tentukan komputer target dengan parameter HostName dan berikan nama pengguna dengan UserName. Saat menjalankan cmdlet secara interaktif, Anda akan dimintai kata sandi.
Enter-PSSession -HostName <Computer> -UserName <Username>
Atau, saat menggunakan parameter HostName , berikan informasi nama pengguna diikuti dengan tanda (@
), diikuti dengan nama komputer.
Enter-PSSession -HostName <Username>@<Computer>
Anda dapat menyiapkan autentikasi kunci SSH menggunakan file kunci privat dengan parameter KeyFilePath . Untuk informasi selengkapnya, lihat Manajemen Kunci OpenSSH.
Kebijakan Grup didukung
PowerShell menyertakan pengaturan Kebijakan Grup untuk membantu Anda menentukan nilai opsi yang konsisten untuk server di lingkungan perusahaan. Pengaturan ini meliputi:
- Konfigurasi sesi konsol: Mengatur titik akhir konfigurasi tempat PowerShell dijalankan.
- Aktifkan Pengelogan Modul: Mengatur properti Modul LogPipelineExecutionDetails.
- Mengaktifkan Pengelogan Blok Skrip PowerShell: Mengaktifkan pengelogan terperinci dari semua skrip PowerShell.
- Aktifkan Eksekusi Skrip: Mengatur kebijakan eksekusi PowerShell.
- Aktifkan Transkripsi PowerShell: memungkinkan pengambilan input dan output perintah PowerShell menjadi transkrip berbasis teks.
- Atur jalur sumber default untuk Update-Help: Mengatur sumber untuk Update-Help ke direktori, bukan Internet.
Untuk informasi selengkapnya, lihat about_Group_Policy_Settings.
PowerShell 7 menyertakan templat Kebijakan Grup dan skrip penginstalan di $PSHOME
.
Alat Kebijakan Grup menggunakan file templat administratif (.admx
, .adml
) untuk mengisi pengaturan kebijakan di antarmuka pengguna. Ini memungkinkan administrator untuk mengelola pengaturan kebijakan berbasis registri.
InstallPSCorePolicyDefinitions.ps1
Skrip menginstal Templat Administratif PowerShell di komputer lokal.
Get-ChildItem -Path $PSHOME -Filter *Core*Policy*
Directory: C:\Program Files\PowerShell\7
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2/27/2020 12:38 AM 15861 InstallPSCorePolicyDefinitions.ps1
-a--- 2/27/2020 12:28 AM 9675 PowerShellCoreExecutionPolicy.adml
-a--- 2/27/2020 12:28 AM 6201 PowerShellCoreExecutionPolicy.admx
Pisahkan Catatan Kejadian
Windows PowerShell dan PowerShell 7 mencatat peristiwa ke log peristiwa yang terpisah. Gunakan perintah berikut untuk mendapatkan daftar log PowerShell.
Get-WinEvent -ListLog *PowerShell*
Untuk informasi selengkapnya, lihat about_Logging_Windows.
Pengalaman pengeditan yang ditingkatkan dengan Visual Studio Code
Visual Studio Code (VS Code) dengan Ekstensi PowerShell adalah lingkungan pembuatan skrip yang didukung untuk PowerShell 7. Windows PowerShell Integrated Scripting Environment (ISE) hanya mendukung Windows PowerShell.
Ekstensi PowerShell yang diperbarui meliputi:
- Mode kompatibilitas ISE baru
- PSReadLine di Konsol Terintegrasi, termasuk penyorotan sintaksis, pengeditan multibaris, dan pencarian kembali
- Stabilitas dan peningkatan performa
- Integrasi CodeLens baru
- Penyelesaian otomatis jalur yang disempurnakan
Untuk mempermudah transisi ke Visual Studio Code, gunakan fungsi Aktifkan Mode ISE yang tersedia di Palet Perintah. Fungsi ini mengalihkan Visual Studio Code ke tata letak gaya ISE. Tata letak bergaya ISE memberi Anda semua fitur dan kemampuan baru PowerShell dalam pengalaman pengguna yang sudah dikenal.
Untuk beralih ke tata letak ISE baru, tekan Ctrl+Shift+P untuk membuka Palet Perintah, ketik PowerShell
dan pilih PowerShell: Aktifkan Mode ISE.
Untuk mengatur tata letak ke tata letak asli, buka Palet Perintah, pilih PowerShell: Nonaktifkan Mode ISE (pulihkan ke default).
Untuk detail tentang menyesuaikan tata letak Visual Studio Code ke ISE, lihat Cara Mereplikasi Pengalaman ISE di Visual Studio Code
Nota
Tidak ada rencana untuk memperbarui ISE dengan fitur baru. Dalam versi terbaru Windows 10 atau Windows Server 2019 dan yang lebih tinggi, ISE sekarang menjadi fitur yang dapat dihapus pengguna. Tidak ada rencana untuk menghapus ISE secara permanen. Tim PowerShell dan mitranya berfokus pada peningkatan pengalaman pembuatan skrip di ekstensi PowerShell untuk Visual Studio Code.
Langkah Selanjutnya
Berbekal pengetahuan untuk bermigrasi secara efektif, instal PowerShell 7 sekarang!