Понякога Windows ще ви забрани достъпа до PowerShell, цитирайки опция, която деактивира изпълняваните скриптове. Ето как да го поправите.

Изпълнявате някои команди на PowerShell и изведнъж виждате съобщение за грешка, което гласи: „PowerShell не може да се зареди, тъй като изпълняваните скриптове са деактивирани в тази система.“

Чудите се какво причинява този проблем и как можете да го разрешите? Ще ви преведем през лесните методи, които могат да ви помогнат да се справите с този проблем веднъж завинаги.

Да се ​​потопим!

1. Стартирайте PowerShell в режим на администратор

В момента работите ли с PowerShell без подходящи администраторски права? Ако е така, тогава може би там е проблемът.

И така, нека разгледаме стъпките, които трябва да приложите, за да стартирате инструмента в администраторски режим:

  1. Натиснете Win + X за да отворите менюто за бърз достъп.
  2. Изберете Windows PowerShell (администратор) опция.

И ако това не помогне, проверете различните начини за отваряне на Windows PowerShell. Но трябва да се съсредоточите само върху методите, които ви показват как да стартирате инструмента с администраторски привилегии.

instagram viewer

2. Променете правилата за изпълнение в PowerShell

В някои случаи промяната на политиката за изпълнение може да помогне. Но преди да проучим решенията, нека първо да ви преведем какво представлява политиката за изпълнение и как работи.

Какво представлява политиката за изпълнение и как работи?

Правилата за изпълнение са защитна функция, която контролира начина, по който изпълнявате PowerShell скриптове на вашето устройство. Той просто определя кои типове скриптове могат да се изпълняват и кои трябва да се избягват. Най-добрата част е, че можете да конфигурирате тази политика по ваш вкус.

Ето опциите, от които можете да избирате, когато конфигурирате правилата за изпълнение:

  • Ограничен: Тази политика ви забранява да изпълнявате скриптове на PowerShell.
  • Без ограничения: Позволява ви да стартирате всеки скрипт, но ви показва предупредително съобщение, когато стартирате подозрителни скриптове.
  • RemoteSigned: Тази политика изисква цифров подпис, когато изпълнявате скриптовете, които сте изтеглили онлайн. Въпреки това не изисква подпис за локални скриптове.
  • Околовръстен път: Това ви позволява да стартирате всеки скрипт без никакви ограничения. За разлика от правилото „Неограничено“, правилото „Байпас“ няма да ви показва предупредителни съобщения, когато изпълнявате подозрителни скриптове. Така че винаги прилагайте тази политика само когато изпълнявате легитимни скриптове.
  • AllSigned: Това правило изпълнява само скриптове, които са подписани от доверен издател.

Сега, ако използвате PowerShell редовно, тогава може да искате да промените правилата за изпълнение от време на време. Въпреки това, някои политики за изпълнение може да показват съобщения за грешка, когато изпълнявате вашите скриптове PowerShell.

Например активирането на правилата „Ограничени“, „Всички подписани“ или „Отдалечено подписани“ може да доведе до съобщения за грешка като грешката „изпълнените скриптове е деактивирано“.

За да разрешите проблема, просто трябва да промените политиката за изпълнение на „Неограничено“ или „Заобикаляне“. Но това не е всичко; вие също трябва да решите как трябва да се прилага политиката. Например, искате ли да приложите правилата за всички потребители или само за текущата ви сесия на PowerShell?

Нека проучим всички допълнителни PowerShell команди ще трябва да добавите, когато променяте политиката за изпълнение:

  • Текущия потребител: Тази политика ще се прилага само към всички PowerShell сесии на лицето, което в момента е влязло в устройството.
  • LocalMachine: Отнася се за всички потребители, които имат акаунт на устройството. Това правило може да се конфигурира само от локални потребители, които имат административни привилегии.
  • Процес: Прилага се само за текущата сесия на PowerShell. Това означава, че ще трябва да изпълните политиката отново, ако започнете нова сесия.
  • MachinePolicy: Тази политика се прилага за всички потребители, които имат акаунт на вашето устройство. Въпреки това, той може да бъде конфигуриран само от мрежови администратори, които имат подходящи разрешения. Но често е възможно локалните администратори да конфигурират тази политика за изпълнение с помощта на редактора на локални групови правила.
  • UserPolicy: Прилага се за всички сесии на PowerShell и скриптовете, изпълнявани от конкретен потребител.

Сега, когато всичко е ясно, нека проучим как можете да изпълните съответните политики, за да се справите с проблема „PowerShell не може да се зареди“.

Как да промените политиката за изпълнение на „Неограничено“

Най-добрият начин да се справите с проблема е да промените политиката за изпълнение на „неограничено“. Но преди това трябва да проверите как е конфигурирана всяка политика за изпълнение.

Ето стъпките за проверка как са конфигурирани правилата за изпълнение:

  1. Натиснете Win + X за да отворите менюто за бърз достъп.
  2. Изберете Windows PowerShell (администратор) от опциите.
  3. Въведете следната команда и натиснете Въведете:
Get-ExecutionPolicy -списък

Това трябва да ви покаже как са конфигурирани правилата за изпълнение за различни потребители и системи.

За да можете да промените политиката за изпълнение на „Неограничено“ за текущия активен потребител, въведете следната команда и натиснете Въведете:

Комплект-ExecutionPolicy Unrestricted -Обхват Текущия потребител

За да промените политиката за изпълнение на „Неограничено“ за всички потребители, въведете следната команда и натиснете Въведете:

Комплект-ExecutionPolicy Unrestricted -Обхват LocalMachine

Когато приключите с изпълнението на командата, затворете PowerShell и рестартирайте компютъра си, за да запазите тези промени.

Как да промените политиката за изпълнение на "ByPass"

Политиката за изпълнение "ByPass" ще ви позволи да стартирате всеки скрипт на PowerShell без проблеми. Но не забравяйте, че може също да ви позволи да стартирате файлове с грешки. Така че винаги конфигурирайте тази политика за изпълнение само когато изпълнявате надеждни PowerShell файлове.

За да промените политиката за изпълнение на „ByPass“ за текущия активен потребител, въведете следната команда и натиснете Въведете:

Комплект-ExecutionPolicy ByPass -Обхват Текущия потребител

И за да промените политиката за изпълнение на „ByPass“ за всички потребители, въведете следната команда и натиснете Въведете:

Комплект-ExecutionPolicy ByPass -Обхват LocalMachine

Когато приключите, затворете PowerShell и след това рестартирайте устройството си.

3. Променете правилата за изпълнение чрез редактора на локални групови правила

Редакторът на локална групова политика (LGPE) също ви улеснява да промените политиката за изпълнение. Всъщност този инструмент може също да ви помогне да конфигурирате различни системни настройки или да отстраните множество проблеми с компютъра.

Не забравяйте, че основната цел е да промените политиката за изпълнение, така че да можете да изпълнявате своите PowerShell скриптове без проблеми. И по този начин ще се отървете от грешката „изпълнените скриптове са деактивирани“ на PowerShell.

Ето как да промените политиката за изпълнение в LGPE:

  1. Тип Редактиране на груповата политика в лентата за търсене на менюто "Старт" и изберете Най-добро съвпадение. Като алтернатива, проверете различните начини за отваряне на LGPE.
  2. Навигирайте до Компютърна конфигурация > Административни шаблони > Компоненти на Windows > Windows PowerShell.
  3. Щракнете двукратно върху Включете изпълнението на скрипт опция.

Проверете Активирано кутия. Оттам щракнете върху Политика за изпълнение падащо меню и изберете Разрешаване на локални скриптове и отдалечени подписани скриптове. Тази опция е подобна на опцията „RemoteSigned“, която открихме по-рано.

Ако искате да изпълнявате всички скриптове без ограничения, изберете Разрешаване на всички скриптове опция от падащото меню „Правила за изпълнение“.

Оттам кликнете Приложи и след това щракнете Добре за да запазите тези промени.

4. Променете правилата за изпълнение с помощта на редактора на системния регистър

Ако другите методи не помогнаха, опитайте да промените правилата за изпълнение с помощта на редактора на системния регистър. Трябва обаче да внимавате, когато редактирате ключовете в системния регистър. Ако промените грешните клавиши, може да повредите компютъра си.

Сега ето как да промените правилата за изпълнение чрез редактора на системния регистър:

  1. Натиснете Win + R за да отворите диалоговия прозорец Изпълнение на командата.
  2. Тип Regedit и натиснете Въведете за да отворите редактора на системния регистър.
  3. Копирайте и поставете следната команда в адресната лента и натиснете Въведете:
HKEY_LOCAL_MACHINE\СОФТУЕР\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

Намерете ExecutionPolicy стойност от дясната страна.

Ако стойността липсва, създайте я чрез следните стъпки:

  1. Щракнете с десния бутон върху празно място от дясната страна.
  2. Изберете Ново > DWORD (32-битова) стойност.
  3. Назовете стойността като ExecutionPolicy и натиснете Въведете.

Щракнете двукратно върху ExecutionPolicy стойност. След това въведете RemoteSigned в секцията "Данни за стойността". Това ще позволи на PowerShell да изпълнява локални и подписани скриптове.

Алтернативно, въведете Околовръстен път в секцията "Данни за стойността". Това ще позволи на PowerShell да изпълни всеки скрипт без ограничения.

След като въведете предпочитаната от вас стойност в секцията „Данни за стойността“, натиснете Добре за да запазите промените. Накрая затворете редактора на системния регистър и след това рестартирайте устройството си.

Изпълнявайте своите PowerShell скриптове без никакви ограничения

Може да бъде доста разочароващо, когато изведнъж не можете да изпълните определени команди на Windows PowerShell. Но ако попаднете на грешката „скриптовете са деактивирани“, решенията, които разгледахме, трябва да помогнат.

Сега PowerShell често ли ви създава други проблеми? Е, има още решения, които могат да ви помогнат.