File cannot be loaded because the execution of scripts is disabled on this system – Powershell Execution Policy
File cannot be loaded because the execution of scripts is disabled on this system. Please see “get-help about_signing” for more details. Powershell Execution Policy
Yukarıdaki hatayı bir powershell script çalıştırırken alma olasılığınız çok yüksek. Bunun nedeni işletim sistemine bağlı olarak değişiklik gösteren Powershell çalıştırma restrectionıdır. Konuya tamamen yabancı olanlar için örnek vermek gerekirse, bir nevi Windows üzerindeki User account control gibi düşünebilirsiniz.
.ps1 uzantılı powershell script çalıştırılabilmesi için işletim sistemi bazında script çalıştırmaya izin verilmesi gerektiğini söyledik. Peki mevcut durumu nasıl görüntüleyebiliriz. Detaylı açıklamaya geçmeden önce Script çalıştırıp çalıştıramayacağınızı görmek için Powershell üzerinde aşağıdaki kodu çalıştırmalısınız
Get-ExecutionPolicy
Bu komutu koşturduğunuzda powershell scripti için izin durumunuzu görüntüleyeceksiniz. Ben kendi bilgisayarımda script çalıştırabiliyorum çünkü Unrestricted olarak tanımlı.
İşinize yarayacak diğer Powershell Makaleleri için aliortul.net/powershell
Powershell Execution Policy
Windows PowerShell komut dosyalarının Windows bilgisayarlarda çalıştırılıp çalıştırılamayacağını group policy ayarlayarak yaparsınız. Bir bilgisayardaki varsayılan yürütme politikası, işletim sistemi sürümüne bağlı olarak değişir. Mevcut yapılandırmadan emin olmak için yukarıda paylaştığım komutu Get-ExecutionPolicy kullanabilirsiniz.
Powershell ExecutionPolicy seçenekleri şunlardır:
Restricted – Hiçbir komut dosyasının çalıştırılmasına izin verilmez.
AllSigned – Komut dosyaları yalnızca dijital olarak imzalanmışlarsa çalıştırılabilir.
RemoteSigned – İndirilen komut dosyaları yalnızca dijital olarak imzalanmışlarsa çalıştırılabilir.
UnRestricted – Tüm komut dosyaları çalıştırılabilir, ancak indirilen imzasız komut dosyalarını çalıştırırken bir onay istemi görüntülenir.
Bypass – Tüm komut dosyaları istemler olmadan çalıştırılır.
File cannot be loaded because the execution of scripts is disabled on this system hatasını giderebilmek için en kolay kullanabileceğiniz iki opsiyon var. Aşağıdaki komutlardan birini kullanabilirsiniz. Bypass olan güvenlik perspektifinde daha az tercih edilir.
Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy Bypass
Eğer problem yaşarsanız -force parametresi ile birlikte kullanabilirsiniz. Set-ExecutionPolicy Unrestricted -Force şeklinde.
Tabi bu anlattığımız yöntem tek bir bilgisayar içindi eğer birden fazla bilgisayarda Powershell Execution Policy ayarlamak gerekiyorsa aşağıdaki Group Policy ayarını basabilirsiniz
Computer Configuration\Policies\Administrative Templates\Windows Components\Windows PowerShell\Turn on Script Execution