İmzasız Powershell Dosyası Nasıl Çalıştırılır?

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:

Powershell running script hatası

ÇÖ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.

powershell executionpolicy

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 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

Executionpolicy unrestricted

Unutmayın, PowerShell’i YÖNETİCİ olarak çalıştırmalısınız.