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.
Unrestricted
ile arasındaki fark, herhangi bir onay istememesidir. - Undefined: Mevcut
ExecutionPolicy
‘i kaldırır. Ancak, bu parametre, Grup İlkesi (GPO) tarafından ayarlanan birExecutionPolicy
ü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.