PowerShell Execution Policy Nedir?
Bir gün bilgisayarınızda bir script çalıştırmaya çalışırken, karşınıza bir hata mesajı çıkarsa ne yaparsınız? İşte tam bu noktada, karşınıza çıkabilecek en yaygın hatalardan biri PowerShell Execution Policy kısıtlamasıdır. Hata mesajı şu şekilde olabilir:
At line:1 char:1
+ .\script.ps1
+ ~~~~~~~~~~~~
The file C:\path\to\script.ps1 is not digitally signed.
You cannot run this script on the current system.
For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
Peki, bu hata ne anlama geliyor? Aslında, PowerShell’in çalışma politikası nedeniyle bilgisayarınız güvenlik amacıyla belirli scriptlerin çalışmasına izin vermez. Windows, yalnızca dijital olarak imzalanmış ya da güvenilir kaynaklardan gelen scriptlerin çalışmasına izin verir. Ama endişelenmeyin! Çözüm oldukça basit.
Execution Policy Hatası ve Çözümü
PowerShell, güvenliği ön planda tutar ve çalıştırılacak scriptlerin dijital olarak imzalanmış olmasını ister. Ancak bazen kendi yazdığınız scriptleri çalıştırmak ya da güvenilir olmayan kaynaklardan gelen scriptleri çalıştırmak isteyebilirsiniz. İşte burada Execution Policy devreye girer. PowerShell’in Execution Policy seviyelerini anlamak, bu hatayı çözmenin anahtarıdır.
Execution Policy Seviyeleri:
- Restricted: Hiçbir script çalıştırılamaz. Varsayılan politikadır.
- RemoteSigned: İnternetten indirilen scriptler dijital olarak imzalanmış olmalıdır.
- Unrestricted: Her türlü script çalıştırılabilir.
- Bypass: Script çalıştırılmasına engel olabilecek tüm kısıtlamalar geçersiz hale gelir.
PowerShell Execution Policy’yi Değiştirme
İşte bu hatayı aşmak için yapmanız gereken tek şey, PowerShell’in Execution Policy ayarlarını değiştirmektir. Aşağıdaki adımları izleyerek bu hatayı kolayca çözebilirsiniz.
1. PowerShell’i Yönetici Olarak Açın:
- Başlat menüsüne sağ tıklayın ve Windows PowerShell (Yönetici) seçeneğini tıklayın.
2. Current Execution Policy’yi Kontrol Edin:
İlk olarak mevcut Execution Policy’nizi görmek için şu komutu girin:
Get-ExecutionPolicy
Bu komut, sistemdeki geçerli Execution Policy ayarını gösterecektir. Eğer bu değer Restricted ya da RemoteSigned gibi kısıtlayıcı bir değer ise, hata almanız olasıdır.
3. Execution Policy’yi Değiştirin:
Şimdi, RemoteSigned ya da Unrestricted gibi daha esnek bir policy belirleyebilirsiniz. RemoteSigned daha güvenli bir seçenektir çünkü internetten indirilen scriptlerin imzalanmasını zorunlu kılar. Bunu yapmak için şu komutu yazın:
Set-ExecutionPolicy RemoteSigned
Eğer Unrestricted tercih ediyorsanız, şu komutu kullanabilirsiniz:
Set-ExecutionPolicy Unrestricted
Komutu girdikten sonra, PowerShell sizden bu değişikliği onaylamanızı isteyecek. Y tuşuna basarak onaylayabilirsiniz.
4. PowerShell’i Yeniden Başlatın:
Değişikliklerin geçerli olması için PowerShell’i kapatıp tekrar açmanız gerekebilir. Artık scriptinizi güvenle çalıştırabilirsiniz!
Execution Policy ile İlgili Dikkat Edilmesi Gerekenler
PowerShell’in Execution Policy, güvenlik açısından oldukça önemlidir. Eğer Unrestricted seviyesini kullanıyorsanız, bilgisayarınıza zararlı yazılımların girmesini kolaylaştırmış olabilirsiniz. Bu nedenle, Execution Policy’yi yalnızca güvenli olduğundan emin olduğunuz scriptler için değiştirin. Ayrıca, bilgisayarınızda düzenli olarak antivirüs yazılımı kullanmak da iyi bir güvenlik önlemidir.
Execution Policy’yi değiştirdikten sonra, hatanın çözülüp çözülmediğini kontrol etmek için scriptinizi tekrar çalıştırmayı unutmayın.
Sonuç: Hata Çözülmüş Olmalı
PowerShell Execution Policy hatası, genellikle birkaç komutla çözülebilen basit bir sorundur. Şimdi, scriptlerinizi güvenle çalıştırabileceğiniz bir ortamınız var. Eğer farklı bir hata ile karşılaşırsanız, Windows'un güvenlik ayarlarını kontrol etmeyi unutmayın.
Bu basit adımlarla, PowerShell’daki Execution Policy kısıtlamasını aşarak işlerinizi kolayca halledebilirsiniz!