PowerShell: Файлът не може да се зареди, защото изпълнението на скрипт е забранено в системата

Microsoft е интегрирала Windows PowerShell като конзола за управление по подразбиране в своите домашни (Windows 10) и корпоративни (Windows Server) операционни системи, за да изпълнява стотици задачи по прост, сигурен и напълно функционален начин.

Сега сред задачите, които можем да изпълним с Windows PowerShell, е изпълнението на скриптове, които имат за задача да автоматизират рутинни задачи или да изпълнят една по -специално улеснявайки административните действия, и въпреки че това е нещо наистина полезно, то може да носи определени рискове, тъй като скрипт с злонамереното съдържание може да засегне различни системни компоненти, като неговите регистри или услуги, създавайки отрицателно въздействие върху неговата производителност и работа.

Поради тази причина Microsoft предлага различни опции, които като потребители можем да изберем за изпълнението на скриптовете, от активирането на всички от тях, независимо от техния източник (нищо не се препоръчва) до ограничаването им изобщо.

1. Преглед на правилата за изпълнение на Windows PowerShell


Microsoft ни предоставя поредица от директиви за изпълнение на Windows PowerShell във всичко, свързано със скриптове, които са.

ОграниченТова е правилото по подразбиране и с него е разрешено изпълнението на отделни команди, но няма да се изпълняват скриптове, в допълнение към това, той предотвратява изпълнението на всички скриптови файлове, включително файловете с конфигурация и формат (.ps1xml), модулът скриптови файлове (.psm1) и профили на Windows PowerShell (.ps1).

Allsigned (само подписи)С този тип директиви могат да се изпълняват скриптове, за това се изисква всички скриптове и конфигурационни файлове да бъдат подписани от доверен издател, включително скриптовете, които са написани на локалния компютър, се изисква допълнително потвърждение преди изпълнението на скриптове на некласифицирани издатели на които се вярва или не им се вярва.

Дистанционно проектиранТази директива позволява изпълнението на скриптове, за това тя изисква цифров подпис от доверен издател в скриптовете и конфигурационните файлове, които са изтеглени от Интернет (включително програми за електронна поща и незабавни съобщения), тя не изисква цифрови подписи в скриптове, които имат са написани на локалния компютър, тоест не са изтеглени от интернет и можете да стартирате скриптове, които са изтеглени от интернет и не са подписани, ако са отключени, например с помощта на командлет Unblock-File.

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

Околовръстен пътС тази директива нищо не е блокирано и няма да се показват нито предупреждения, нито съобщения за сигурност, тази директива за изпълнение е проектирана за конфигурации, в които скрипт на Windows PowerShell е интегриран в по -голямо приложение или в конфигурации, в които Windows PowerShell е основата на програма, която има собствен модел на сигурност.

НеопределеноТази опция показва, че в текущия обхват няма зададена политика за изпълнение, така че ако политиката за изпълнение във всички области е Недефинирана, политиката за автоматично стартиране ще бъде Ограничена, което е политиката за изпълнение по подразбиране в Windows 10.

За да видите всички директиви на Windows PowerShell, можем да изпълним следното. Сега ще видим как да създадем нова директива за правилно изпълнение на скрипт в Windows PowerShell.

 Get -ExecutionPolicy -List 

Увеличете

2. Изпълнете скрипт с команда ExecutionPolicy Windows PowerShell

Етап 1
За да използваме тази опция, имаме две опции, които да стартираме в Windows PowerShell като администратори, а именно:

 Set -ExecutionPolicy -ExecutionPolicy RemoteSigned Set -ExecutionPolicy RemoteSigned -Force
Стъпка 2
След като някой от тези редове бъде изпълнен, можем да потвърдим резултата, като използваме следната команда:
 Get -ExecutionPolicy -List

Увеличете

3. Стартирайте скрипт в Windows PowerShell с редактора на системния регистър

Етап 1
За този метод се препоръчва да създадете резервно копие на файловете или да създадете точка за възстановяване в случай на някакъв вид повреда, тогава ще използваме следните ключове и ще изпълним следното:

+ R

 Regedit 
Стъпка 2
В прозореца, който ще се покаже, отиваме на следния маршрут.
 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ ShellIds \ Microsoft.PowerShell 
Стъпка 3
Там щракваме с десния бутон върху „Microsoft.PowerShell“ и избираме опцията „Нова / стойност на низа“:

Стъпка 4
Тази нова стойност ще се нарича "ExecutionPolicy":

Увеличете

Стъпка 5
Ще кликнете два пъти върху тази стойност и в полето "Информация за стойността" въвеждаме "RemoteSigned":

Стъпка 6
Кликнете върху Приемам и ще видим, че тази директива е приложена:

Увеличете

4. Стартирайте скрипт в Windows PowerShell с групови правила

Етап 1
Тази опция е налична за Pro и Enterprise изданията на Windows 10 и за достъп до тях ще използваме следните ключове и ще изпълним следното:

+ R

 gpedit.msc 
Стъпка 2
При натискане на Enter ще се покаже следният прозорец и там ще преминем към следния маршрут:
  • Настройка на оборудването
  • Административни шаблони
  • Компоненти на Windows
  • Windows PowerShell

Стъпка 2
Там избираме и отваряме политиката, наречена „Активиране на изпълнението на скриптове“:

Увеличете

Стъпка 3
В показания прозорец активираме полето "Активирано" и в полето "Директива за изпълнение" можем да изберем някоя от следните опции. След като директивата бъде дефинирана, щракнете върху Приложи и OK, за да запазите промените.

  • Позволете само подписани скриптове
  • Разрешаване на локални скриптове и скриптове с дистанционно подписване
  • Разрешаване на всички скриптове

С някой от тези методи ще бъде възможно правилното използване на скриптовете в Windows среди.

wave wave wave wave wave