Memahami fondasi PowerShell: perbedaan powershell.exe dan pwsh.exe, memilih host yang tepat antara console, ISE, VS Code, dan Windows Terminal, membedah struktur cmdlet dengan konvensi Verb-Noun, menggunakan Get-Help dan Update-Help, mengeksplorasi sistem dengan Get-Command, Get-Member, dan Get-Module, serta mengatur execution policy.

Di episode 1 kita memahami mengapa PowerShell ada — lahir dari Monad untuk memecahkan kekacauan administrasi Windows. Sekarang saatnya menyentuh bagian yang sebenarnya: console dan fondasi perintah. Episode ini adalah "tata krama dasar" — apa yang kalian lihat di layar, bagaimana perintah disusun, bagaimana bertanya pada sistem, dan aturan keamanan yang mengatur eksekusi script.
Jika episode 0 menyiapkan environment dan episode 1 menyiapkan mental, episode 2 menyiapkan bahasa. Kuasai bagian ini, dan semua episode berikutnya — variabel, operator, kondisi, hingga fungsi — akan terasa seperti menambah kosakata pada bahasa yang sudah kalian pahami.
Ada dua engine PowerShell yang kalian jumpai di mesin Windows, dan membedakannya adalah keterampilan pertama yang wajib dimiliki:
| Engine | Executable | Versi | Karakteristik |
|---|---|---|---|
| Windows PowerShell | powershell.exe | 5.1 | Bawaan Windows; kompatibilitas maksimal |
| PowerShell (Core) | pwsh.exe | 7.x | Modern, cross-platform, lebih cepat |
Keduanya bisa hidup berdampingan di mesin yang sama. Cara paling cepat memastikan engine mana yang sedang berjalan:
$PSVersionTable.PSEditionNilai Core berarti PowerShell 7, nilai Desktop berarti Windows PowerShell 5.1. Sepanjang series ini kita memakai pwsh, kecuali ada catatan khusus untuk kompatibilitas 5.1.
Kalian butuh tempat menulis dan menjalankan PowerShell. Setiap host punya kekuatannya sendiri:
| Host | Terbaik Untuk | Catatan |
|---|---|---|
Console (pwsh) | Menjalankan perintah langsung | Cepat, minimalis, host default |
| Windows Terminal | Konsol modern dengan tab | Host terbaik untuk console |
| PowerShell ISE | Warisan, scripting 5.1 | Tidak lagi dikembangkan |
| VS Code + ekstensi PowerShell | Development script serius | IntelliSense, debugger, git |
Aturan praktis: console untuk mengeksplorasi, VS Code untuk membangun. Kalian akan sering berpindah — mengetes perintah di console, lalu menuangkannya ke script di VS Code. Windows Terminal merekomendasikan keduanya karena memberi tab untuk banyak sesi.
Setiap kali pwsh menyala, ia membaca file profil — sebuah script yang dieksekusi otomatis. Ini tempat menyimpan alias, fungsi, dan warna favorit agar setiap sesi terasa "rumah". Lihat lokasi profil kalian:
$PROFILEJika file belum ada, buat dulu. Contoh profil sederhana:
if (-not (Test-Path $PROFILE)) {
New-Item -Path $PROFILE -ItemType File -Force
}
Set-Location C:\Users\arman\Documents
Set-Alias g git
function kls {
Get-ChildItem | Format-Wide -Column 4
}
Write-Host "Profil dimuat - selamat datang, $env:USERNAME" -ForegroundColor Green$PROFILE adalah file yang sama untuk powershell.exe dan pwsh.exe — jika kalian memakai keduanya, buat profil terpisah untuk masing-masing agar pengaturan tidak tercampur.
Setiap perintah PowerShell disebut cmdlet (command-let), dan namanya selalu mengikuti pola Verb-Noun. Contoh paling dasar:
Get-Process -Name pwshGet adalah verb (kata kerja): mengambil sesuatu.Process adalah noun (kata benda): apa yang diambil.-Name pwsh adalah parameter: penyaring hasil.Kejeniusan konvensi ini: karena namanya konsisten, kalian bisa menebak perintah. Ingin membuat service? New-Service. Menghapus file? Remove-Item. Menjalankan sesuatu? Invoke-Command. Sistem menjadi dapat diprediksi.
| Verb | Makna | Contoh |
|---|---|---|
Get | Mengambil/membaca | Get-Process |
Set | Mengubah nilai yang ada | Set-Content |
New | Membuat baru | New-Item |
Remove | Menghapus | Remove-Item |
Add | Menambahkan ke koleksi | Add-Content |
Start | Memulai | Start-Service |
Stop | Menghentikan | Stop-Process |
Invoke | Menjalankan aksi | Invoke-WebRequest |
Microsoft memelihara daftar approved verbs — verb resmi yang boleh dipakai. Fungsinya agar seluruh ekosistem (Microsoft maupun komunitas) berbicara dengan kosakata yang sama. Memakai verb di luar daftar akan memicu peringatan saat kalian membuat fungsi sendiri di episode lanjutan.
Tidak ada yang bisa menghafal semua parameter. Justru itulah mengapa PowerShell menyediakan sistem bantuan bawaan yang kaya:
Get-Help Get-Process| Opsi | Fungsi |
|---|---|
-Full | Dokumentasi lengkap termasuk parameter dan contoh lanjutan |
-Detailed | Detail sedang, tanpa bagian paling teknis |
-Examples | Hanya contoh penggunaan |
-Online | Membuka dokumentasi terbaru di browser |
-? | Pintasan cepat Get-Help dari console |
PowerShell 7 punya bantuan updatable — dokumen yang bisa diunduh agar selalu segar:
Update-Help -ForceSelain bantuan per cmdlet, ada topik konseptual about_* yang menjelaskan aturan umum — seperti kebijakan eksekusi dan variabel otomatis. Coba Get-Help about_* untuk melihat daftarnya, atau langsung Get-Help about_Execution_Policies.
Bantuan saja tidak cukup — kalian perlu mengeksplorasi apa yang tersedia di sistem.
Get-Command menemukan perintah. Cari semua cmdlet dengan kata tertentu memakai wildcard:
Get-Command -Name *Process*Get-Member membongkar isi objek — properti dan method apa saja yang dimiliki sebuah nilai. Ini jendela untuk memahami apa yang bisa kalian lakukan dengan data yang kalian pegang:
Get-Process pwsh | Get-MemberGet-Module mendaftar modul yang tersedia dan dimuat — unit yang membawa kumpulan cmdlet, misalnya modul Active Directory atau Azure. Show-Command menampilkan GUI kecil untuk menyusun perintah dengan form parameter.
Tip
Kombinasi Get-Command, Get-Help, dan Get-Member adalah trio eksplorasi: temukan perintahnya, baca dokumentasinya, lalu bedah objek yang dikembalikannya. Kebiasaan ini akan menggantikan rasa buntu dengan rasa ingin tahu.
Execution policy bukan proteksi antivirus — ia adalah pengingat: Windows tidak akan menjalankan script PowerShell secara diam-diam. Ada lima mode utama:
| Policy | Perilaku |
|---|---|
Restricted | Tidak ada script yang boleh berjalan (default lama) |
AllSigned | Semua script harus ditandatangani |
RemoteSigned | Script lokal bebas; script dari internet harus bertanda tangan |
Unrestricted | Semua script boleh berjalan, dengan peringatan |
Bypass | Semua script berjalan tanpa blokir |
Pada Windows 10/11 modern, nilai default umumnya RemoteSigned — kompromi yang bijak: script yang kalian tulis sendiri berjalan normal, sedangkan script yang diunduh dari internet (yang paling berisiko) menuntut tanda tangan.
Lihat policy saat ini, lalu ubah jika perlu:
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserScope menentukan seberapa luas aturan berlaku: Process (sesi ini saja), CurrentUser (pengguna ini), atau LocalMachine (semua pengguna, butuh administrator). Mulailah dari CurrentUser — paling aman untuk belajar.
Important
Jangan pernah menyalin script dari internet lalu menjalankannya dengan -ExecutionPolicy Bypass secara membabi buta. Policy ini adalah sabuk pengaman — menggantinya ke Bypass untuk selamanya sama seperti melepas sabuk pengaman agar tidak mengganggu. Pahami dulu apa yang kalian jalankan.
Episode 2 ini menutup fondasi bahasa: kalian sekarang tahu cara membedakan powershell.exe dan pwsh.exe, memilih host yang tepat, membaca struktur cmdlet Verb-Noun, bertanya pada sistem lewat Get-Help dan Get-Command, membedah objek dengan Get-Member, serta memahami execution policy dan scope-nya.
Inti yang harus kalian bawa:
pwsh.exe (7+) adalah engine utama series; powershell.exe (5.1) untuk kompatibilitas.Verb-Noun — pahami polanya, dan sistem jadi mudah ditebak.Get-Command cari, Get-Help baca, Get-Member bedah.RemoteSigned dan ubah hanya di scope yang perlu.Di episode 3 selanjutnya kita masuk ke "bahan baku" script: variables & data types — bagaimana menyimpan nilai di $variable, mengenal tipe seperti string, angka, boolean, array, dan hashtable, serta teknik memanipulasi string yang akan kalian pakai di hampir setiap script. Pastikan pwsh kalian hangat, karena materi berikutnya semakin konkret!