Ето как да извлечете максимума от Windows PowerShell, като активирате правилата за изпълнение на скриптове.

iPowerShell по подразбиране ви позволява да изпълнявате команди (cmdlets) чрез неговата конзола. За да изпълните скрипт, можете да създадете файл в бележника с кода на скрипта, да го запишете с файлово разширение .ps1 и да го изпълните чрез конзолата на PowerShell. Можете също така директно да поставите скрипта в конзолата за изпълнение.

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

Как да проверите съществуващата си политика за изпълнение

Можете да използвате кратката команда на PowerShell, за да получите текущата си политика за изпълнение. Познаването на текущата ви политика за изпълнение е необходимо, за да знаете дали имате нужда от промяна на политиката или не.

За да получите текущата си политика за изпълнение за текущия потребител:

  1. Отворете Windows PowerShell като администратор.
  2. Въведете следната команда в конзолата на PowerShell и натиснете Enter:
    получавам- политика на изпълнение
  3. Тъй като сте срещнали грешка при изпълнение на скрипта, връщането вероятно ще се покаже Ограничен като текущата ви политика за изпълнение.
  4. Ако трябва да видите правилата за изпълнение за всички поддържани обхвати:
    получавам-списък на политики за изпълнение

Ще трябва да промените политиката за изпълнение на RemoteSigned, за да изпълнявате локални скриптове без грешка. Можете да промените правилата за изпълнение от приложението Настройки и PowerShell.

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

Можете да промените и зададете политиката за изпълнение на PowerShell на RemoteSigned с помощта на приложението Настройки. Всичко, което трябва да направите, е да промените настройките на PowerShell в секцията за разработчици, за да промените правилата за изпълнение, за да активирате изпълнението на скриптове на PowerShell.

За да промените правилата за изпълнение чрез Настройки:

  1. Натиснете Win + I за отваряне на SeTизтръпвания.
  2. Отвори Поверителност и сигурност раздел в левия прозорец.
  3. След това щракнете върху За разработчици.
  4. Кликнете, за да разширите PowerShell раздел.
  5. Превключете превключвателя на променете политиката за изпълнение, за да позволите на локалните PowerShell скриптове да се изпълняват без подписване - Изискване на подписване за отдалечени скриптове.
  6. След като сте готови, отворете PowerShell, въведете get политика за изпълнение, и натиснете Въведете. Политиката за изпълнение за текущия потребител вече е зададена на RemoteSigned.
  7. Ако трябва да деактивирате политиката за изпълнение, превключете превключвателя PowerShell и го задайте на Изкл.

Как да позволите на скриптове да се изпълняват в PowerShell с помощта на PowerShell

Можете да използвате a Командлет на PowerShell за да зададете политиката за изпълнение на RemoteSigned. Интерфейсът на командния ред улеснява бързата промяна на правилата за изпълнение, без да използвате приложението Настройки.

Освен това приложението Настройки може да активира или деактивира само политиката за изпълнение RemoteSigned. Докато PowerShell ви позволява да задавате и други политики и обхвати.

За да промените правилата за изпълнение с помощта на PowerShell:

  1. Отворете PowerShell като администратор.
  2. В прозореца на PowerShell въведете следната команда и натиснете Въведете:
    Комплект-ExecutionPolicy RemoteSigned
  3. Ако бъдете подканени, натиснете А за потвърждение на действието. Това ще настрои RemoteSigned политика за изпълнение за всички потребители. Ако искате да зададете правилата за изпълнение за Текущия потребител използвайте само параметъра Scope, последван от потребителското име.
  4. Например, за да зададете RemoteSigned политика за изпълнение на Текущия потребител, използвайте следната команда:
    Комплект-ExecutionPolicy RemoteSgined -Обхват Текущия потребител
  5. Сменете Текущия потребител в горната команда с други потребители (Обхват) според вашите изисквания.

Как да премахнете правилата за изпълнение на скриптове с помощта на PowerShell

Ако искате да деактивирате изпълнението на скрипт, задайте политиката за изпълнение на Недефиниран използвайки the Set_ExecutionPolicy cmdlet. Това е състояние по подразбиране и не позволява на PowerShell да изпълнява скриптове.

За да деактивирате изпълнението на скрипт с помощта на PowerShell:

  1. Отворете PowerShell с повишено разрешение.
  2. След това въведете следната команда и натиснете enter, за да деактивирате изпълнението на скрипт за всички потребители:
    Комплект-Политика за изпълнение недефиниран
  3. Горната команда ще зададе политиката за изпълнение по подразбиране (недефинирана) за всички потребители. Ако искате да деактивирате изпълнението на скрипт за конкретен обхват, използвайте следната команда:
    Комплект-Политика за изпълнение недефиниран -Обхват CurrentUser
  4. Горната команда ще деактивира изпълнението на скрипт за Текущия потребител.

Разбиране на политиките и обхватите на изпълнение

Просто казано, политиката за изпълнение на PowerShell е политика, която контролира как PowerShell изпълнява конфигурационни файлове и скриптове. Целта е да се предотврати случайно стартиране на злонамерени скриптове от потребителите. Седемте политики за изпълнение на PowerShell са По подразбиране, ограничен, RemoteSigned, AllSigned, неограничен, байпас и недефиниран.

Таблицата по-долу обяснява накратко всички правила за изпълнение на PowerShell:

Политика за изпълнение

Принудително изпълнение

По подразбиране

Задава политиката за изпълнение по подразбиране като Ограничено на Windows клиент и RemoteSigned на Windows Server.

AllSigned

Позволява изпълнение на скриптове, подписани от издателя.

Околовръстен път

Неограничено изпълнение на скриптове за по-големи приложения.

RemoteSigned

Позволява изпълнение на локално написан скрипт. Изисква цифрови подписи за скриптове, изтеглени от интернет.

Ограничен

Не позволява изпълнение на скриптове, а само отделни команди на PowerShell.

Недефиниран

Задава политика за изпълнение на Ограничено за Windows клиенти и RemoteSigned за Windows Server.

Без ограничения

Разрешаване на изпълнение на неподписан скрипт с предупреждение за скриптовете, изтеглени от интернет.

Обхват на политиката за изпълнение

Можете да зададете правила за изпълнение за определен обхват в PowerShell. Петте обхвата на политиката за изпълнение са MachinePolicy, UserPolicy, Process, CurrentUser, и LocalMachine.

Таблицата по-долу обяснява накратко всички обхвати на правилата за изпълнение:

Обхват на политиката за изпълнение

Принудително изпълнение

UserPolicy

Конфигурирано от групови правила за текущия потребител.

Машинна политика

Конфигуриран от групова политика за всички потребители.

Текущ потребител

Конфигуриран за текущия потребител и съхранен в подключа на системния регистър HKEY_CURRENT_MACHINE.

LocalMachine

Конфигуриран за всички потребители и съхранен в подключа на системния регистър HKEY_CURRENT_MACHINE.

Процес

Засяга текущата сесия на PowerShell и се изтрива автоматично, когато сесията бъде затворена.

Добавяне или премахване на правила за изпълнение на скрипт PowerShell в Windows

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

Като алтернатива можете да заобиколите правилата за изпълнение на PowerShell, като поставите скрипта в конзола на PowerShell или ECHO вашия скрипт в стандартния вход на PowerShell. Това е полезно, ако искате да изпълнявате скриптове, без да променяте правилата за изпълнение.