Windows, güvenlik gerekçeleriyle güvenli olmayan PowerShell dosyalarının çalıştırılmasına varsayılan olarak izin vermez. Ancak, bu dosyaları güvenli bir şekilde çalıştırmak için kullanabileceğiniz bir PowerShell komutu bulunmaktadır:
Set-ExecutionPolicy.
HATA
Windows’ta PowerShell scriptlerini çalıştırmaya çalışırken karşılaşılan yaygın bir hata, güvenlik politikaları nedeniyle çalıştırma izninin olmamasıdır. Bu hatanın bir örneği aşağıda görselde görülebilir:
ÇÖZÜM
Set-ExecutionPolicy komutu, Windows PowerShell’de komut yürütme seçeneklerini değiştirmenize olanak tanır. İmzasız script’lerin çalıştırılması güvenlik önlemi olarak kısıtlanmıştır; çalıştırılmadan önce script’lerin dijital olarak imzalanmış olması gerekmektedir.
Varsayılan
ExecutionPolicy değerini görmek için
Get-ExecutionPolicy komutunu kullanabilirsiniz.
ExecutionPolicy için aşağıdaki 6 farklı parametre kullanılabilir:
- Restricted: Varsayılan parametredir. İnternetten indirilen hiçbir PowerShell dosyasını çalıştırmaz.
- AllSigned: Yalnızca güvenilir bir yayıncı tarafından imzalanmış PowerShell scriptlerinin çalıştırılmasına izin verir. Bu, yerel olarak yazılmış scriptleri de içerir.
- RemoteSigned: İnternetten indirilen PowerShell scriptlerin güvenilir bir yayıncı tarafından imzalanmış olmasını gerektirir.
- Unrestricted: Tüm PowerShell script dosyalarını çalıştırır. İnternetten indirilen bir scripti çalıştırdığınızda onay ister.
- Bypass: Tüm PowerShell script dosyalarını sorunsuzca çalıştırır.
Unrestrictedile arasındaki fark, herhangi bir onay istememesidir.
- Undefined: Mevcut
ExecutionPolicy‘i kaldırır. Ancak, bu parametre, Grup İlkesi (GPO) tarafından ayarlanan bir
ExecutionPolicyüzerinde değişiklik yapamaz.
İstediğiniz yetkilendirmeyi bu parametreler arasından seçebilirsiniz. Örneğin, tüm kısıtlamaları kaldırmak için aşağıdaki komutu kullanabilirsiniz:
Set-ExecutionPolicy Unrestricted
Unutmayın, PowerShell’i YÖNETİCİ olarak çalıştırmalısınız.