PowerShell Script Execution Hatası Nedir?
"Script execution is disabled on this system" hatası, Windows güvenlik ayarlarının PowerShell betiklerinin çalışmasına izin vermediği durumları ifade eder. Windows, güvenlik amacıyla PowerShell betiklerinin otomatik olarak çalışmasına engel koyar. Özellikle, Execution Policy ayarları, betiklerin çalışma şeklini kontrol eder. Eğer bu ayar Restricted olarak belirlenmişse, betiklerin çalışmasına izin verilmez.
PowerShell'in varsayılan olarak güvenliği ön planda tutmak amacıyla, yalnızca signed (imzalı) betiklerin çalışmasına izin verir. Eğer betiğiniz imzasızsa veya yanlış bir Execution Policy ayarı varsa, hata almanız kaçınılmaz olur. Bu, özellikle yeni başlayanlar için kafa karıştırıcı olabilir.
Çözüm Adımları
Eğer PowerShell script execution hatası ile karşılaştıysanız, çözüm için birkaç basit adımı takip edebilirsiniz.
İlk olarak, PowerShell’i yönetici olarak çalıştırmanız gerektiğini unutmayın. Bunun için şu adımları izleyin:
1. Windows menüsünü açın.
2. "PowerShell" araması yapın.
3. Windows PowerShell üzerine sağ tıklayın ve "Yönetici olarak çalıştır" seçeneğine tıklayın.
# Adım 2: Execution Policy’i Değiştirin
Şimdi, PowerShell betiklerinin çalışmasına izin veren bir Execution Policy belirlemeniz gerekiyor. Bunun için aşağıdaki komutu kullanabilirsiniz:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Bu komut, sadece güvenilir kaynaklardan gelen betiklerin çalışmasına izin verir ve yerel olarak yazdığınız betiklerin çalışmasına da izin verir.
# Adım 3: İzinleri Kontrol Edin
Eğer betik hala çalışmıyorsa, yönetici olarak çalıştırmadığınız için olabilir. Komut istemcisini yönetici olarak çalıştırdığınızdan emin olun.
Execution Policy ayarlarını kontrol etmek için şu komutu kullanabilirsiniz:
Get-ExecutionPolicy -List
Bu komut, Execution Policy değerlerinin hangi kapsamda (kullanıcı, makine, vb.) uygulandığını gösterecektir. RemoteSigned gibi bir değer görüyorsanız, betiklerinizin çalışması için doğru ayarlara sahipsiniz demektir.
# Adım 5: Politika Değişikliklerini Uygulayın
Eğer hala sorun yaşıyorsanız, Group Policy ayarlarını kontrol etmeniz gerekebilir. Bunun için Windows'un grup ilkesi düzenleyicisini açın:
1. `gpedit.msc` komutunu çalıştırarak Grup İlkesi Düzenleyicisi'ni açın.
2. Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell bölümüne gidin.
3. Turn on Script Execution seçeneğini bulun ve Enabled olarak ayarlayın.
Eğer belirli bir betiği çalıştırmak için sadece geçici bir çözüm arıyorsanız, Execution Policy'yi sadece o oturum için değiştirebilirsiniz. Bunun için şu komutu kullanabilirsiniz:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Bu, sadece o oturum için geçerli olacak ve oturum kapandığında ayar eski haline dönecektir.
Hata Giderme ve İleri Seviye Çözümler
Bazen bu adımlar sorunu çözmeye yetmeyebilir. O zaman aşağıdaki ekstra adımları deneyebilirsiniz:
- Antivirüs Yazılımlarını Kontrol Edin: Bazı antivirüs yazılımları, PowerShell betiklerinin çalışmasını engelleyebilir. Antivirüsünüzün ayarlarını gözden geçirin ve PowerShell betiklerinin engellenmediğinden emin olun.
### Sonuç
PowerShell script execution hatası, Windows kullanıcılarının sıkça karşılaştığı bir sorundur, ancak doğru adımlarla kolayca çözülebilir. Execution Policy ayarlarını doğru şekilde yapılandırarak ve yönetici izinlerini kullanarak bu tür hataları aşabilirsiniz. Betiklerinizin çalışması için doğru güvenlik önlemleri almayı unutmayın.