Memahami dan Mengelola Execution Policy di PowerShell

Execution Policy adalah pengaturan keamanan yang digunakan oleh PowerShell untuk menentukan apa yang dapat dijalankan atau dieksekusi dalam lingkungan


Pengenalan Execution Policy di PowerShell

Execution Policy adalah pengaturan keamanan yang digunakan oleh PowerShell untuk menentukan apa yang dapat dijalankan atau dieksekusi dalam lingkungan PowerShell. Ini dapat digunakan untuk mencegah skrip yang tidak dikenal atau tidak aman yang dijalankan di sistem Kita.

Secara default, PowerShell memiliki pengaturan Execution Policy yang cukup ketat untuk menjamin keamanan sistem Kita. Namun, Kita dapat mengubah pengaturan ini sesuai kebutuhan Kita. Ada enam perintah yang dapat digunakan untuk mengatur Execution Policy, yaitu Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass, dan Undefined.

Masing-masing perintah ini memiliki tingkat keamanan yang berbeda, mulai dari yang paling ketat hingga yang paling longgar. Dalam artikel ini, kita akan membahas lebih detail tentang Execution Policy dan bagaimana cara mengelolanya.

Dimana Perintah Execution Policy Bisa Dijalankan

Untuk menjalankan perintah Execution Policy sayangnya tidak bisa menggunakan CMD, melainkan harus menggunakan powershell dan pastikan run administrator.

Execution Policy di CMD
Execution Policy di CMD Administrator

Execution Policy di PowerShell Administrator

Perintah Execution Policy

  • Restricted: Execution Policy ini adalah pengaturan default dan paling ketat di PowerShell. Kita tidak dapat menjalankan skrip apapun dengan pengaturan ini.
  • AllSigned: Hanya skrip yang ditandatangani digital oleh publisher yang dapat dijalankan dengan pengaturan ini.
  • RemoteSigned: Skrip yang ditulis oleh kita sendiri dapat dijalankan tanpa ditandatangani digital, namun skrip yang didownload dari internet harus ditandatangani digital oleh publisher.
  • Unrestricted: Kita dapat menjalankan semua skrip tanpa batasan dengan pengaturan ini. Namun, tetap disarankan untuk berhati-hati dalam mengeksekusi skrip yang didownload dari internet.
  • Bypass: Kita dapat mengeksekusi skrip tanpa pengaturan keamanan apapun. Ini sangat tidak disarankan karena dapat menyebabkan masalah keamanan.
  • Undefined: Ini digunakan untuk menghapus pengaturan Execution Policy yang ditentukan di tingkat yang lebih tinggi, seperti dari GPO atau registri.

Scope Execution Policy

Scope Execution Policy merupakan tingkatan penerapan pengaturan Execution Policy. Ada tiga scope yang dapat digunakan, yaitu:

  • LocalMachine: Pengaturan ini berlaku untuk semua user dan sesi di komputer kita. Ini merupakan pengaturan default jika kita tidak menentukan scope saat mengubah Execution Policy.
  • CurrentUser: Pengaturan ini hanya berlaku untuk user yang sedang login saat ini.
  • Process: Pengaturan ini hanya berlaku untuk sesi PowerShell yang sedang digunakan saat ini.

Ketika kita mengubah Execution Policy dengan perintah, kita dapat menentukan scope yang kita inginkan dengan menambahkan opsi seperti "-Scope LocalMachine" atau "-Scope CurrentUser" di akhir perintah.

Secara default, jika kita tidak menentukan scope, Execution Policy akan diterapkan pada scope LocalMachine. Namun, jika kita ingin mengubah pengaturan hanya untuk user tertentu atau sesi tertentu, kita dapat menentukan scope yang sesuai.

Cara mengecek Execution Policy yang berlaku

Untuk mengecek Execution Policy yang berlaku pada sistem kita, kita bisa menggunakan perintah Get-ExecutionPolicy. Perintah ini akan menampilkan nama dari pengaturan Execution Policy yang saat ini digunakan.

Contohnya, jika kita menjalankan perintah Get-ExecutionPolicy dan menampilkan "Restricted", itu berarti bahwa Execution Policy yang saat ini digunakan adalah Restricted.

Kita juga bisa mengecek Execution Policy pada tingkat yang lebih spesifik dengan menambahkan parameter -Scope dan menentukan scope yang ingin kita cek. Scope yang tersedia adalah "LocalMachine", "CurrentUser", dan "Process".

Misalnya, jika kita ingin mengecek Execution Policy pada tingkat LocalMachine, kita bisa menjalankan perintah Get-ExecutionPolicy -Scope LocalMachine.

Itu akan menampilkan pengaturan Execution Policy yang berlaku pada tingkat LocalMachine.

Perintah Execution Policy Lengkap

Mengecek Execution Policy

# scope: LocalMachine
Get-ExecutionPolicy -Scope LocalMachine

# scope: CurrentUser
Get-ExecutionPolicy -Scope -Scope CurrentUser

# scope: Process
Get-ExecutionPolicy -Scope -Scope Process

Mengubah Execution Policy

# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope Process
# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process
# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# scope: LocalMachine
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine

# scope: CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

# scope: Process
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope Process

Troubleshooting masalah Execution Policy

Troubleshooting masalah Execution Policy dapat dilakukan dengan beberapa cara. 

Pertama, kita dapat mengecek apakah Execution Policy yang diterapkan sesuai dengan yang kita inginkan dengan menjalankan perintah Get-ExecutionPolicy. Kita juga dapat mengecek apakah ada skrip yang mencoba dijalankan tetapi diblokir oleh Execution Policy yang diterapkan dengan mengecek event logs.

Kedua, jika kita mengalami masalah saat mencoba menjalankan skrip, kita dapat mengecek apakah skrip tersebut ditandatangani digital dengan benar. Skrip yang tidak ditandatangani digital atau yang ditandatangani oleh penerbit yang tidak dikenal akan diblokir oleh Execution Policy yang memerlukan skrip ditandatangani digital.

Ketiga, jika kita mengalami masalah saat mengubah Execution Policy, kita dapat mengecek apakah kita memiliki akses yang cukup untuk mengubah pengaturan. Hanya pengguna yang memiliki hak administrator yang dapat mengubah Execution Policy.

Keempat, jika masalah masih terjadi setelah melakukan troubleshooting di atas, kita dapat mencari bantuan dari dokumentasi atau dukungan teknis untuk mengatasi masalah tersebut.

Contoh Permasalahan

#Kasus 1

Masalah: Ini merupakan contoh kasus ketika ingin menjalankan SASS tapi tidak bisa karena Execution Policy sudah diatur menjadi Restricted.
Solusi: gunakan remoteSigned

Hasil: tidak ada eror ketika menjalankan sass -v

Kesimpulan

Secara keseluruhan, Execution Policy adalah fitur keamanan yang sangat penting dalam PowerShell. Dengan mengatur Execution Policy, kita dapat memastikan bahwa hanya skrip yang dipercayai dan aman yang dijalankan di sistem kita. Ada enam perintah yang dapat digunakan untuk mengatur Execution Policy, yaitu Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass, dan Undefined. Masing-masing perintah ini memiliki tingkat keamanan yang berbeda, mulai dari yang paling ketat hingga yang paling longgar.

Scope Execution Policy sendiri menentukan di mana pengaturan ini berlaku, apakah hanya untuk sesi saat ini atau untuk semua sesi dan user.

Untuk mengecek Execution Policy yang berlaku, kita dapat menggunakan perintah Get-ExecutionPolicy. Dan jika ingin mengubahnya, kita dapat menggunakan perintah Set-ExecutionPolicy dengan opsi yang diinginkan.

Meskipun Execution Policy sangat penting untuk menjaga keamanan sistem, ada kalanya kita mengalami masalah saat mengubah atau mengecek pengaturannya. Oleh karena itu, troubleshooting masalah Execution Policy juga penting untuk dilakukan agar kita dapat mengatasi masalah tersebut dengan baik.

Secara keseluruhan, dengan mengerti dan mengelola Execution Policy dengan baik, kita dapat menjaga keamanan sistem dengan baik dan menghindari masalah yang mungkin terjadi.

Posting Komentar

Silakan komentar sesuai topik
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.