Bab 1 - Mulai menggunakan PowerShell

Bab ini berfokus pada menemukan dan meluncurkan PowerShell dan memecahkan poin-poin rasa sakit awal yang dialami pengguna baru dengan PowerShell. Ikuti dan telusuri contoh dalam bab ini di komputer lingkungan lab Anda.

Apa itu PowerShell?

Windows PowerShell adalah shell baris perintah dan lingkungan pembuatan skrip yang mudah digunakan untuk mengotomatiskan tugas administratif sistem berbasis Windows. Windows PowerShell telah diinstal sebelumnya pada semua versi modern sistem operasi Windows.

Tempat menemukan PowerShell

Cara termudah untuk menemukan PowerShell di Windows 11 adalah dengan mengetik PowerShell ke bilah pencarian, seperti yang ditunjukkan pada Gambar 1-1. Perhatikan bahwa ada empat pintasan berbeda untuk Windows PowerShell.

Gambar 1-1 - Cari PowerShell.

Pintasan Windows PowerShell pada Windows versi 64-bit:

  • Windows PowerShell
  • Windows PowerShell ISE
  • Windows PowerShell (x86)
  • Windows PowerShell ISE (x86)

Pada Windows versi 64-bit, Anda memiliki konsol Windows PowerShell versi 64-bit dan Windows PowerShell Integrated Scripting Environment (ISE) dan versi 32-bit masing-masing, seperti yang ditunjukkan oleh akhiran (x86) pada pintasan.

Catatan

Windows 11 hanya dikirim sebagai sistem operasi 64-bit. Tidak ada Windows 11 versi 32-bit. Namun, Windows 11 menyertakan Windows PowerShell versi 32-bit dan WINDOWS PowerShell ISE.

Anda hanya memiliki dua pintasan jika menjalankan versi 32-bit Windows yang lebih lama. Pintasan tersebut tidak memiliki akhiran (x86) tetapi adalah versi 32-bit.

Sebaiknya gunakan Windows PowerShell versi 64-bit jika Anda menjalankan sistem operasi 64-bit kecuali Anda memiliki alasan khusus untuk menggunakan versi 32-bit.

Bergantung pada versi Windows 11 yang Anda jalankan, Windows PowerShell mungkin terbuka di Terminal Windows.

Microsoft tidak lagi memperbarui POWERShell ISE. ISE hanya berfungsi dengan Windows PowerShell 5.1. Visual Studio Code (VS Code) dengan ekstensi PowerShell berfungsi dengan kedua versi PowerShell. Visual Studio Code dan ekstensi PowerShell tidak disertakan di Windows. Instal Visual Studio Code dan ekstensi di komputer tempat Anda membuat skrip PowerShell. Anda tidak perlu menginstalnya di semua komputer tempat Anda menjalankan PowerShell.

Cara meluncurkan PowerShell

Saya menggunakan tiga akun pengguna Direktori Aktif yang berbeda di lingkungan produksi yang saya dukung. Saya menggandakan akun-akun tersebut di lingkungan lab yang dipakai dalam buku ini. Saya masuk ke komputer Windows 11 saya sebagai pengguna domain tanpa hak administrator domain atau lokal.

Luncurkan konsol PowerShell dengan mengklik pintasan Windows PowerShell, seperti yang ditunjukkan pada Gambar 1-1. Perhatikan bahwa bilah judul konsol mengatakan Windows PowerShell, seperti yang ditunjukkan pada Gambar 1-2.

Gambar 1-2 - Bilah judul jendela PowerShell.

Beberapa perintah berjalan dengan baik saat Anda menjalankan PowerShell sebagai pengguna biasa. Namun, PowerShell tidak berpartisipasi dalam Kontrol Akun Pengguna (UAC). Itu berarti tidak dapat meminta elevasi untuk tugas yang memerlukan persetujuan administrator.

Catatan

UAC adalah fitur keamanan Windows yang membantu mencegah kode berbahaya berjalan dengan hak istimewa yang ditinggikan.

Saat masuk sebagai pengguna biasa, PowerShell mengembalikan kesalahan saat Anda menjalankan perintah yang memerlukan elevasi. Misalnya, menghentikan layanan Windows:

Stop-Service -Name W32Time
Stop-Service : Service 'Windows Time (W32Time)' cannot be stopped due to
the following error: Cannot open W32Time service on computer '.'.
At line:1 char:1
+ Stop-Service -Name W32Time
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.ServiceProcess.ServiceCon
   troller:ServiceController) [Stop-Service], ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Comm
   ands.StopServiceCommand

Solusinya adalah menjalankan PowerShell yang ditinggikan sebagai pengguna yang merupakan administrator lokal. Itulah cara saya mengonfigurasi akun pengguna domain kedua saya. Mengikuti prinsip hak istimewa paling sedikit, akun ini tidak boleh menjadi administrator domain atau memiliki hak istimewa yang ditinggikan di domain.

Untuk memulai PowerShell dengan hak yang ditinggikan, klik kanan pintasan Windows PowerShell dan pilih Jalankan sebagai administrator, seperti yang ditunjukkan pada Gambar 1-3.

Figure 1-3 - Context menu - Run as administrator.Gambar 1-3 - Menu konteks - Jalankan sebagai administrator.

Windows meminta kredensial kepada Anda karena Anda masuk ke Windows sebagai pengguna biasa. Masukkan kredensial pengguna domain Anda yang merupakan administrator lokal, seperti yang ditunjukkan pada Gambar 1-4.

Figure 1-4 - User account control - Enter credentials.Gambar 1-4 - Kontrol akun pengguna - Masukkan kredensial.

Perhatikan bahwa bilah judul jendela konsol yang ditinggikan mengatakan Administrator: Windows PowerShell, seperti yang ditunjukkan pada Gambar 1-5.

Gambar 1-5 - Bilah judul jendela PowerShell yang ditingkatkan.

Sekarang setelah Anda menjalankan PowerShell dengan hak akses administrator, UAC tidak lagi menghalangi saat Anda menjalankan perintah yang memerlukan hak akses tersebut.

Penting

Anda hanya boleh menjalankan PowerShell dengan hak istimewa sebagai administrator jika benar-benar diperlukan.

Saat Anda menargetkan komputer jarak jauh, Tidak perlu menjalankan PowerShell yang ditingkatkan. Menjalankan PowerShell yang ditingkatkan hanya memengaruhi perintah yang berjalan pada komputer lokal Anda.

Anda dapat menyederhanakan temuan dan peluncuran PowerShell. Sematkan pintasan PowerShell atau Terminal Windows ke taskbar Anda. Cari PowerShell lagi, kecuali kali ini klik kanan padanya dan pilih Sematkan ke taskbar seperti yang ditunjukkan pada Gambar 1-6.

Gambar 1-6 - Menu konteks - Sematkan ke bilah tugas.

Penting

Versi asli buku ini, yang diterbitkan pada tahun 2017, merekomendasikan untuk menyematkan pintasan ke taskbar untuk meluncurkan instans yang ditinggikan secara otomatis setiap kali Anda memulai PowerShell. Namun, karena potensi masalah keamanan, saya tidak lagi merekomendasikannya. Aplikasi apa pun yang Anda luncurkan dari instans PowerShell yang ditingkatkan juga melewati UAC dan berjalan ditingkatkan. Misalnya, jika Anda meluncurkan browser web dari instans PowerShell dengan hak akses lebih tinggi, situs web apa pun yang Anda kunjungi dan mengandung kode berbahaya juga akan dijalankan dengan hak akses lebih tinggi.

Saat Anda perlu menjalankan PowerShell dengan izin yang ditinggikan, klik kanan pintasan PowerShell yang disematkan ke taskbar Anda saat menekan Shift. Pilih Jalankan sebagai administrator, seperti yang ditunjukkan pada Gambar 1-7.

Gambar 1-7 - Menu konteks - Jalankan sebagai administrator.

Menentukan versi PowerShell Anda

Ada variabel otomatis di PowerShell yang menyimpan informasi status. Salah satu variabel ini adalah $PSVersionTable, yang berisi informasi versi tentang sesi PowerShell Anda.

$PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.22621.2428
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.22621.2428
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Jika Anda menjalankan versi Windows PowerShell yang lebih lama dari 5.1, Anda harus memperbarui versi Windows Anda. Windows PowerShell 5.1 telah diinstal sebelumnya pada versi Windows yang saat ini didukung.

PowerShell versi 7 bukan pengganti Windows PowerShell 5.1; ini menginstal berdampingan dengan Windows PowerShell. Windows PowerShell versi 5.1 dan PowerShell versi 7 adalah dua produk yang berbeda. Untuk informasi selengkapnya tentang perbedaan antara Windows PowerShell versi 5.1 dan PowerShell versi 7, lihat "Migrasi dari Windows PowerShell 5.1 ke PowerShell 7".

Petunjuk / Saran

PowerShell versi 6, sebelumnya dikenal sebagai PowerShell Core, tidak lagi didukung.

Kebijakan eksekusi

Kebijakan eksekusi PowerShell mengontrol kondisi di mana Anda dapat menjalankan skrip PowerShell. Kebijakan eksekusi di PowerShell adalah fitur keselamatan yang dirancang untuk membantu mencegah eksekusi skrip berbahaya yang tidak disengaja. Namun, ini bukan batas keamanan karena tidak dapat menghentikan pengguna yang ditentukan agar tidak sengaja menjalankan skrip. Pengguna yang ditentukan dapat melewati kebijakan eksekusi di PowerShell.

Anda dapat mengatur kebijakan eksekusi untuk komputer lokal, pengguna saat ini, atau sesi PowerShell. Anda juga dapat mengatur kebijakan eksekusi untuk pengguna dan komputer dengan Kebijakan Grup.

Tabel berikut menunjukkan kebijakan eksekusi default untuk sistem operasi Windows saat ini.

Versi Sistem Operasi Windows Kebijakan Pelaksanaan Default
Windows Server 2022 Ditandatangani Jarak Jauh
Server Windows 2019 Ditandatangani Jarak Jauh
Server Windows 2016 Ditandatangani Jarak Jauh
Windows 11 Terbatas
Windows 10 Terbatas

Terlepas dari pengaturan kebijakan eksekusi, Anda dapat menjalankan perintah PowerShell apa pun secara interaktif. Kebijakan eksekusi hanya memengaruhi perintah yang berjalan dalam skrip. Gunakan cmdlet Get-ExecutionPolicy untuk menentukan pengaturan kebijakan eksekusi saat ini.

Periksa pengaturan kebijakan eksekusi pada komputer Anda.

Get-ExecutionPolicy
Restricted

Cantumkan pengaturan kebijakan eksekusi untuk semua cakupan.

Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

Semua sistem operasi klien Windows memiliki pengaturan kebijakan eksekusi default yang dibatasi. Anda tidak dapat menjalankan skrip PowerShell menggunakan pengaturan kebijakan eksekusi Restricted. Untuk menguji kebijakan eksekusi, simpan kode berikut sebagai sebuah file bernama .

Petunjuk / Saran

Skrip PowerShell adalah file teks biasa yang berisi perintah yang ingin Anda jalankan. File skrip PowerShell menggunakan .ps1 ekstensi file. Untuk membuat skrip PowerShell, gunakan editor kode seperti Visual Studio Code (VS Code) atau editor teks apa pun seperti Notepad.

Saat Anda menjalankan perintah berikut secara interaktif, perintah selesai tanpa kesalahan.

Get-Service -Name W32Time

Namun, PowerShell mengembalikan kesalahan saat Anda menjalankan perintah yang sama dari skrip.

.\Get-TimeService.ps1
.\Get-TimeService.ps1 : File C:\tmp\Get-TimeService.ps1 cannot be loaded
because running scripts is disabled on this system. For more information,
see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Get-TimeService.ps1
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Saat Anda menjalankan perintah di PowerShell yang menghasilkan kesalahan, baca pesan kesalahan sebelum mencoba kembali perintah. Perhatikan pesan kesalahan memberi tahu Anda mengapa perintah gagal:

... menjalankan skrip dinonaktifkan pada sistem ini.

Untuk mengaktifkan eksekusi skrip, ubah kebijakan eksekusi dengan cmdlet Set-ExecutionPolicy. LocalMachine adalah cakupan default saat Anda tidak menentukan parameter Cakupan. Anda harus menjalankan PowerShell dengan hak istimewa sebagai administrator untuk mengubah aturan eksekusi pada komputer lokal. Kecuali Anda menandatangani skrip Anda, saya sarankan RemoteSigned menggunakan kebijakan eksekusi. RemoteSigned mencegah Anda dari menjalankan skrip yang diunduh dan tidak ditandatangani oleh penerbit tepercaya.

Sebelum Anda mengubah kebijakan eksekusi, bacalah artikel panduan "about_Execution_Policies" untuk memahami implikasi keamanannya.

Ubah pengaturan kebijakan eksekusi di komputer Anda menjadi RemoteSigned.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Jika Anda berhasil mengubah kebijakan eksekusi, PowerShell akan menampilkan peringatan berikut:

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust.
Changing the execution policy might expose you to the security risks
described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the
execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "N"):y

Jika Anda tidak menjalankan PowerShell dengan hak akses tinggi sebagai administrator, PowerShell menampilkan pesan kesalahan berikut:

Set-ExecutionPolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWAR
E\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. To
change the execution policy for the default (LocalMachine) scope, start
Windows PowerShell with the "Run as administrator" option. To change the
execution policy for the current user, run "Set-ExecutionPolicy -Scope
CurrentUser".
At line:1 char:1
+ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy],
   UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.
   PowerShell.Commands.SetExecutionPolicyCommand

Anda juga dapat mengubah kebijakan pelaksanaan untuk pengguna saat ini tanpa mengharuskan Anda menjalankan PowerShell dalam mode administrator. Langkah ini tidak perlu jika Anda berhasil mengatur kebijakan eksekusi untuk komputer lokal ke RemoteSigned.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Dengan kebijakan eksekusi diposisikan ke RemoteSigned, skrip Get-TimeService.ps1 berhasil dijalankan.

.\Get-TimeService.ps1
Status   Name               DisplayName
------   ----               -----------
Running  W32Time            Windows Time

Ringkasan

Dalam bab ini, Anda belajar di mana menemukan dan cara meluncurkan PowerShell. Anda juga mempelajari cara menentukan versi PowerShell dan tujuan kebijakan eksekusi.

Tinjauan

  1. Bagaimana Anda menentukan versi PowerShell yang dijalankan komputer?
  2. Kapan Anda harus meluncurkan PowerShell dengan hak administrator penuh?
  3. Apa kebijakan eksekusi default pada komputer klien Windows, dan apa yang mencegah Anda melakukan?
  4. Bagaimana Anda menentukan pengaturan kebijakan eksekusi PowerShell saat ini?
  5. Bagaimana Anda mengubah kebijakan eksekusi PowerShell?

Untuk jawaban atas pertanyaan ulasan, lihat Lampiran buku ini.

Referensi

Untuk mempelajari selengkapnya tentang konsep yang dibahas dalam bab ini, baca artikel bantuan PowerShell berikut ini.

Langkah berikutnya

Di Bab 2, Anda akan mempelajari tentang kemampuan menemukan perintah di PowerShell. Anda juga akan mempelajari cara mengunduh file bantuan PowerShell sehingga Anda dapat melihat bantuan di sesi PowerShell Anda.