РАЗДЕЛ
about_Execution_Policies
КРАТКОЕ ОПИСАНИЕ
Описывает политики выполнения Windows PowerShell и способы
управления ими.
ПОЛНОЕ ОПИСАНИЕ
Политики выполнения Windows PowerShell позволяют определять
условия, при которых среда Windows PowerShell загружает файлы
конфигурации и выполняет скрипты.
Политику выполнения можно задать для локального компьютера, текущего
пользователя или конкретного сеанса. Для задания политик выполнения для
пользователей и компьютеров можно использовать параметры групповой
политики.
Политики выполнения для локального компьютера и текущего пользователя
хранятся в реестре. Политики выполнения не требуется задавать в
профиле Windows PowerShell. Политика выполнения для конкретного
сеанса хранится только в памяти и теряется после закрытия сеанса.
Политика выполнения не является механизмом обеспечения безопасности,
который ограничивает действия пользователей. Например, пользователи могут
обходить политику путем ввода содержимого скрипта в командной строке, если
выполнить скрипт не удается. Вместо этого политика выполнения помогает
пользователям задавать базовые правила и не позволяет непреднамеренно нарушать их.
ПОЛИТИКИ ВЫПОЛНЕНИЯ WINDOWS POWERSHELL
-------------------------------------
Существуют следующие политики выполнения Windows PowerShell.
Restricted - политика по умолчанию.
Restricted
- Политика выполнения по умолчанию.
- Допускает отдельные команды, но скрипты выполнять нельзя.
- Препятствует выполнению всех файлов скриптов, включая файлы
форматирования и конфигурации (PS1XML), файлы скриптов модулей
(PSM1) и профили Windows PowerShell (PS1).
AllSigned
- Выполнение скриптов разрешено.
- Требует, чтобы все скрипты и файлы конфигурации были
подписаны надежным издателем, в том числе скрипты,
подготовленные на локальном компьютере.
- Перед выполнением скриптов издателей, для которых еще не
определено, являются ли они надежными, выводятся
предупреждения.
- Имеется риск выполнения неподписанных скриптов из
источников, отличных от Интернета, а также подписанных, но
вредоносных скриптов.
RemoteSigned
- Выполнение скриптов разрешено.
- Требует наличия цифровой подписи надежного издателя у
скриптов и файлов конфигурации, загружаемых из
Интернета (включая электронную почту и программы мгновенного
обмена сообщениями).
- Не требует наличия цифровых подписей у скриптов, выполняемых и
написанных на локальном компьютере (не загруженных из Интернета).
- Имеется риск выполнения подписанных, но вредоносных
скриптов.
Unrestricted
- Могут выполняться неподписанные скрипты. (Имеется риск
выполнения вредоносных скриптов.)
- Предупреждает пользователя перед выполнением скриптов и
файлов конфигурации, загруженных из Интернета.
Bypass
- Ничего не блокируется, и никакие предупреждения и запросы не
появляются.
- Эта политика выполнения предназначена для конфигураций,
в которых скрипт Windows PowerShell встроен в более крупное
приложение, или для конфигураций, в которых Windows PowerShell
является платформой для программы, у которой имеется собственная
модель обеспечения безопасности.
Undefined
- В текущей области не задана политика выполнения.
- Если политика выполнения во всех областях имеет значение
Undefined, действует политика выполнения Restricted, которая
является политикой выполнения по умолчанию.
Примечание. В системах, которые не отличают UNC-пути от путей в
Интернете, выполнение скриптов, которые задаются UNC-путями,
может быть запрещено, если включена политика выполнения RemoteSigned.
ОБЛАСТЬ ПОЛИТИКИ ВЫПОЛНЕНИЯ
---------------------------
Можно задать политику выполнения, которая действует только в
конкретной области.
Допустимые значения параметра Scope - Process, CurrentUser и
LocalMachine. При задании политики выполнения по умолчанию
используется значение LocalMachine.
Значения Scope перечислены в порядке приоритета.
- Process
Действие политики выполнения распространяется только на
текущий сеанс (текущий процесс Windows PowerShell). Политика
выполнения хранится в переменной среды $PSExecutionPolicyPreference.
Это значение удаляется, когда сеанс, в котором задана политика,
закрывается.
- CurrentUser
Действие политики выполнения распространяется только на
текущего пользователя. Она хранится в разделе реестра
HKEY_CURRENT_USER.
- LocalMachine
Действие политики выполнения распространяется на всех
пользователей текущего компьютера. Она хранится в
разделе реестра HKEY_LOCAL_MACHINE.
Политика, имеющая более высокий приоритет, действует в текущем
сеансе даже в том случае, если на более низком уровне приоритета
была задана более строгая политика.
Дополнительные сведения см. в описании командлета Set-ExecutionPolicy.
ПОЛУЧЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
------------------------------
Чтобы получить политику выполнения Windows PowerShell, которая
действует в текущем сеансе, используется командлет Get-ExecutionPo
licy.
Следующая команда получает текущую политику выполнения:
get-executionpolicy
Чтобы получить все политики выполнения, влияющие на текущий сеанс и
отобразить их в порядке приоритета, введите:
get-executionpolicy -list
Выходные данные будут выглядеть примерно следующим образом:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine AllSigned
В этом случае действует политика выполнения RemoteSigned,
поскольку политика выполнения текущего пользователя имеет приоритет по
сравнению с политикой выполнения для локального компьютера.
Чтобы получить политику выполнения для конкретной области, следует
использовать параметр Scope командлета Get-ExecutionPolicy.
Например, следующая команда получает политику выполнения для области
текущего пользователя.
get-executionpolicy -scope CurrentUser
ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
------------------------------
Чтобы изменить политику выполнения Windows PowerShell на
компьютере, следует использовать командлет Set-ExecutionPolicy.
Изменение вступает в силу немедленно; перезапускать оболочку Windows
PowerShell не требуется.
Если задать политику выполнения для локального компьютера (по
умолчанию) или текущего пользователя, изменение сохраняется в
реестре и остается в силе, пока политика не будет изменена снова.
Если задать политику выполнения для текущего процесса, она не
сохраняется в реестре. Она сохраняется, пока текущий процесс и все его
дочерние процессы не будут закрыты.
Примечание. В Windows Vista и более поздних версиях Windows для
выполнения команд, которые изменяют политику выполнения
для локального компьютера (по умолчанию), запустите Windows
PowerShell командой "Запуск от имени администратора".
Чтобы изменить политику выполнения, введите:
Set-ExecutionPolicy <имя_политики>
Пример:
Set-ExecutionPolicy RemoteSigned
Чтобы задать политику выполнения в конкретной области, введите:
Set-ExecutionPolicy <имя_политики> -scope <область>
Пример:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Команда изменения политики выполнения может быть выполнена
успешно, но не изменить действующую политику выполнения.
Например, команда, устанавливающая политику выполнения для локального
компьютера, может быть выполнена успешно, но она может быть переопределена
политикой выполнения для текущего пользователя.
УДАЛЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ
----------------------------
Чтобы удалить политику выполнения для конкретной области, следует
задать для политики выполнения значение Undefined.
Например, чтобы удалить политику выполнения для всех пользователей
локального компьютера, введите:
set-executionpolicy Undefined
Также можно ввести команду:
set-executionpolicy Undefined -scope LocalMachine
Если ни в одной из областей не задана ни одна политика
выполнения, будет действовать политика выполнения Restricted, которая
является политикой по умолчанию.
УСТАНОВКА ПОЛИТИКИ ВЫПОЛНЕНИЯ В POWERSHELL.EXE
----------------------------------------------
С помощью параметра ExecutionPolicy программы PowerShell.exe
можно задать политику выполнения для нового сеанса Windows PowerShell.
Действие политики распространяется только на текущий сеанс и его
дочерние сеансы.
Чтобы задать политику выполнения для нового сеанса, запустите Windows
PowerShell в командной строке (например, Cmd.exe или Windows PowerShell),
а затем воспользуйтесь параметром ExecutionPolicy программы PowerShell.exe,
чтобы задать политику выполнения.
Пример:
powershell.exe -executionpolicy -allsigned
Задаваемая политика выполнения не сохраняется в реестре.
Вместо этого она сохранятся в переменной среды $PSExecutionPolicyP
reference. Переменная удаляется, когда сеанс, в котором задана
политика, закрывается.
На протяжении сеанса политика выполнения, которая задана для
сеанса, имеет приоритет по сравнению с политикой выполнения,
заданной в реестре для локального компьютера или текущего
пользователя. Однако она не имеет приоритета по сравнению с
политикой выполнения, заданной с помощью групповой политики
(см. ниже).
УПРАВЛЕНИЕ ПОЛИТИКАМИ ВЫПОЛНЕНИЯ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ
-------------------------------------------------------------
С помощью параметра групповой политики "Включить выполнение
скриптов" можно управлять политикой выполнения компьютеров в
организации. Этот параметр групповой политики переопределяет
политики выполнения, заданные в Windows PowerShell во всех областях.
Параметр политики "Включить выполнение скриптов" работает
следующим образом.
-- Если отключить параметр "Включить выполнение скриптов", скрипты
выполняться не будут. Это эквивалентно применению политики выполнения
Restricted.
-- Если включить параметр "Включить выполнение скриптов", можно
выбрать политику выполнения. Параметры групповой политики
эквивалентны следующим политикам выполнения.
Групповая политика Политика выполнения
---------------------- -------------------
Разрешить все скрипты. Unrestricted
Разрешить локальные RemoteSigned
скрипты и удаленные
подписанные скрипты.
Разрешить только AllSigned
подписанные скрипты.
-- Если параметр "Включить выполнение скриптов" не задан, он не
действует. Действует политика выполнения, заданная в Windows
PowerShell.
Файл PowerShellExecutionPolicy.adm добавляет политику "Включить
выполнение скриптов" в узлы "Конфигурация компьютера" и "Конфигурация
пользователя" редактора групповой политики по следующим путям.
В Windows XP и Windows Server 2003:
Административные шаблоны\Компоненты Windows\Windows PowerShell
В Windows Vista и более поздних версиях Windows:
Административные шаблоны\Классические административные
шаблоны\Компоненты Windows\Windows PowerShell
Политики в узле "Конфигурация компьютера" имеют приоритет по
сравнению с политиками в узле "Конфигурация пользователя".
Файл PowerShellExecutionPolicy.adm можно загрузить из Центра загрузки
Майкрософт. Дополнительные сведения см. в разделе "Административные
шаблоны для Windows PowerShell" по адресу
https://go.microsoft.com/fwlink/?LinkId=131786.
ПРИОРИТЕТ ПОЛИТИК ВЫПОЛНЕНИЯ
----------------------------
При определении действующей политики выполнения для сеанса среда
Windows PowerShell вычисляет политики выполнения на основании
следующего порядка приоритетов.
- Групповая политика: конфигурация компьютера
- Групповая политика: конфигурация пользователя
- Политика выполнения: Process (или PowerShell.exe ExecutionPolicy)
- Политика выполнения: CurrentUser
- Политика выполнения: LocalMachine
УПРАВЛЕНИЕ ПОДПИСАННЫМИ И НЕПОДПИСАННЫМИ СКРИПТАМИ
--------------------------------------------------
Если в Windows PowerShell установлена политика выполнения
RemoteSigned, среда Windows PowerShell не будет выполнять
неподписанные скрипты, загружаемые из Интернета (включая
электронную почту и программы мгновенного обмена сообщениями).
Можно подписать скрипт или выполнить неподписанный скрипт без
изменения политики выполнения.
Дополнительные сведения см. в разделе about_Signing.
СМ. ТАКЖЕ
Get-ExecutionPolicy
Set-ExecutionPolicy
about_Signing
"Административные шаблоны для Windows PowerShell"
(https://go.microsoft.com/fwlink/?LinkId=131786)