PowerShell има редица режими на изпълнение, които определят какъв тип код може да се изпълнява, това се управлява от ключ на системния регистър, който живее в кошера HKLM. Има 4 различни режима на изпълнение:
- Ограничен: Правилата за изпълнение по подразбиране не изпълняват само скриптове, интерактивни команди.
- Всички са подписани: Изпълнява скриптове; всички скриптове и конфигурационни файлове трябва да бъдат подписани от издател, на когото имате доверие; ви отваря риска да се показват подписани (но злонамерени) скриптове, след като потвърдите, че имате доверие на издателя.
- Отдалечено подписване: Местните скриптове се изпълняват без подпис. Всички изтеглени скриптове се нуждаят от цифров подпис, дори от UNC пътека.
- неограничен: Изпълнява скриптове; всички скриптове и конфигурационни файлове, изтеглени от комуникационни приложения като Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger, след като потвърдите, че разбирате файла, произхождащ от интернет; не се изисква цифров подпис; ви отваря риска да се пускат неподписани злонамерени скриптове, изтеглени от тези приложения
Политиката по подразбиране за изпълнение на PowerShell се нарича Ограничена. В този режим PowerShell работи само като интерактивна рамка. Той не изпълнява скриптове и зарежда само конфигурационни файлове, подписани от издател, на когото имате доверие. Ако получавате гадната червена грешка, най-вероятната причина е, че се опитвате да изпълните неписан скрипт. Най-сигурното нещо, което трябва да направите, е да промените Правилата за изпълнение на неограничени, да изпълните своя скрипт и след това да го промените обратно на ограничен.
За да го промените на неограничен, изпълнете следната команда от административна PowerShell:
Set-ExecutionPolicy Unrestricted
Ще бъдете попитани дали сте сигурни, че искате да промените Правилата за изпълнение, като натиснете отново бутона за въвеждане.
Set-ExecutionPolicy Restricted
Отново ще бъдете попитани дали сте сигурни, че искате да промените режима на изпълнение, продължете напред и натиснете Enter.