Windows 10'da PowerShell'de "komut dosyalarının çalıştırılması bu sistemde devre dışı bırakıldı" sorununu düzeltme


Basit PowerShell veya Batch komut dosyalarının nasıl yazılacağını biliyorsanız, Windows 10'da pek çok şeyi otomatikleştirebilirsiniz. Aslında, bir şey için mükemmel komut dosyasını yazmak için biraz zaman harcamanız gerekse bile, hazır olduğunuzda zamandan tasarruf edersiniz. yazmak için harcadığınız zamana değecektir. Bununla birlikte, komut dosyaları tehlikeli olabilir; bu, PowerShell'de komut dosyaları çalıştırmayı denediğinizde, aslında size "komut dosyalarını çalıştırmanın bu sistemde devre dışı bırakıldığını" söyleyen oldukça uzun bir hata mesajı alırsınız.

Bu, kötü amaçlı komut dosyalarının çalışmasını ve sisteme zarar verme olasılığını önlemek için PowerShell'de alınan bir güvenlik önlemidir. Elbette, kendi yazdığınız bir komut dosyası kötü amaçlı olmayacaktır ve çalıştırılabilmesi gerekir. Bu sorunu çözmek için PowerShell'deki yürütme ilkesini değiştirmeniz gerekir. İşte nasıl yapılacağı.

Bu sistemde çalışan komut dosyalarının devre dışı bırakılmasını düzeltin

PowerShell'i yönetici haklarıyla açın ve aşağıdaki komutu çalıştırın.

Get-ExecutionPolicy -List

Bu size kullanıcınız ve makineniz için ayarlanmış olan yürütme politikasını gösterecektir. Her ikisinin de veya en azından CurrentUser politikasının Kısıtlı olarak ayarlanmış olması muhtemeldir.

“Bu sistemde çalışan komut dosyaları devre dışı bırakıldı” hatasını düzeltmek için CurrentUser politikasını değiştirmeniz gerekir. Bunu yapmak için aşağıdaki komutu çalıştırın.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Değişikliği yapmak istediğinizi onayladığınızda betiği çalıştırabileceksiniz.

Bu, çoğu komut dosyasını çalıştırmanıza izin verecektir, ancak hala aynı hatayı alıyorsanız, muhtemelen makinenin yürütme politikasını değiştirmeniz gerekir. Bunu yapmak için önceki komutu değiştirebilirsiniz ancak bunu yapmak için yönetici haklarına ihtiyacınız olacak.

Bu komutu çalıştırın.

Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

Değişikliği yapmak istediğinizi onaylayın ve ardından betiği çalıştırmayı deneyin.

Komut dosyasını kendiniz yazdıysanız, çevrimiçi olarak indirdiyseniz ve imzalanmamışsa bu işe yarayacaktır, o zaman yürütme politikasını Sınırsız olarak değiştirmeniz gerekir. Bunu yapmak için yukarıdaki komutların tümünde "RemoteSigned" ifadesini "Kısıtlanmamış" olarak değiştirin. İndiriyorsanız hangi komut dosyalarını çalıştırdığınıza çok dikkat edin. Tehlikeli olabilirler.

Set-ExecutionPolicy

Bu, PowerShell'de yürütme politikasını ayarlamak için oldukça basit bir komuttur. Bu komutun dört farklı parametresi veya durumu olabilir: Kısıtlı, AllSigned, RemoteSigned ve Kısıtlanmamış.

-Scope anahtarı, politika değişikliğinin neye uygulanacağını tanımlar. “CurrentUser” girdiğinizde sadece mevcut kullanıcıya uygulanır, “LocalMachine” girdiğinizde tüm sisteme uygulanır

İlgili makaleler