Изменяет пользовательские параметры политики выполнения Windows PowerShell.

Синтаксис

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Описание

Командлет Set-ExecutionPolicy изменяет пользовательские параметры политики выполнения Windows PowerShell.

Чтобы выполнить эту команду в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запустить Windows PowerShell с параметром "Запуск от имени администратора", даже если пользователь является членом группы "Администраторы" компьютера.

Политика выполнения — часть стратегии безопасности оболочки Windows PowerShell. Она определяет, можно ли загружать файлы конфигурации (в том числе профиль Windows PowerShell) и выполнять скрипты, и определяет, для выполнения каких скриптов, если такие имеются, требуется цифровая подпись.

Дополнительные сведения см. в разделе about_Execution_Policies.

Параметры

-ExecutionPolicy <ExecutionPolicy>

Задает новую политику выполнения для оболочки. Имя параметра ("Name") указывать необязательно.

Допустимые значения:

-- Restricted: не загружает файлы конфигурации и не выполняет скрипты. "Restricted" — значение по умолчанию.

-- AllSigned: требует, чтобы все скрипты и файлы конфигурации были подписаны доверенным издателем, в том числе скрипты, подготовленные на локальном компьютере.

-- RemoteSigned: требует, чтобы все скрипты и файлы конфигурации, загруженные из Интернета, были подписаны доверенным издателем.

-- Unrestricted: загружает все файлы конфигурации и выполняет все скрипты. Если запущен неподписанный скрипт, который был загружен из Интернета, то программа просит ввести разрешение перед запуском.

-- Bypass: ничего не блокируется, и никакие предупреждения и запросы не появляются.

Undefined: удаляет текущую назначенную политику выполнения из текущей области. Этот параметр не удаляет политику выполнения, заданную в области групповой политики.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Force

Подавляет все запросы. По умолчанию Set-ExecutionPolicy отображает предупреждение при каждом изменении политики выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Scope <ExecutionPolicyScope>

Задает область политики выполнения. По умолчанию используется значение LocalMachine.

Допустимые значения:

-- Process: действие политики выполнения распространяется только на текущий процесс Windows PowerShell.

-- CurrentUser: действие политики выполнения распространяется только на текущего пользователя.

-- LocalMachine: действие политики выполнения распространяется на всех пользователей компьютера.

Чтобы удалить политику выполнения из конкретной области, задайте для политики выполнения этой области значение Undefined.

Обязательно?

false

Позиция?

2

Значение по умолчанию

LocalMachine

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Confirm

Запрашивает подтверждение перед выполнением команды.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

Microsoft.PowerShell.ExecutionPolicy, System.String

Объект политики выполнения или строку, содержащую имя политики выполнения, можно передать командлету Set-ExecutionPolicy по конвейеру.

Выходные данные

None

Этот командлет не возвращает никаких выходных данных.

Примечания

При использовании Set-ExecutionPolicy новый пользовательский параметр записывается в реестр и остается без изменений до тех пор, пока не будет изменен.

Однако если для компьютера или пользователя включена групповая политика "Включить выполнение скриптов", то пользовательский параметр записывается в реестр, но не действует, и оболочка Windows PowerShell отображает сообщение, в котором разъясняется конфликт. Использовать командлет Set-ExecutionPolicy, чтобы переопределить групповую политику, нельзя, даже если пользовательский параметр содержит больше ограничений, чем политика.

Пример 1

C:\PS>set-executionpolicy remotesigned

Описание
-----------
Эта команда устанавливает значение RemoteSigned для пользовательского параметра политики выполнения оболочки.






Пример 2

C:\PS>Set-ExecutionPolicy Restricted
Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
set-executionpolicy  <<<< restricted

Описание
-----------
Эта команда пытается установить для политики выполнения оболочки значение "Restricted". Параметр "Restricted" записывается в реестр, но не действует, так как противоречит групповой политике, даже если он представляет более строгие ограничения, чем в политике.






Пример 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Описание
-----------
Эта команда получает политику выполнения с удаленного компьютера и применяет ее к локальному компьютеру.

Эта команда использует командлет Invoke-Command для отправки команды удаленному компьютеру. Поскольку объект ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) можно передать командлету Set-ExecutionPolicy по конвейеру, эта команда не требует параметра ExecutionPolicy.
Команда имеет параметр Force, который подавляет подтверждения.






Пример 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force
C:\PS> get-executionpolicy -list
        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Описание
-----------
В этом примере показано, как задать политику выполнения для конкретной области.
Первая команда использует командлет Set-ExecutionPolicy для указания политики выполнения AllSigned для текущего пользователя. Она использует параметр Force для подавления подтверждений.
Вторая команда использует параметр List командлета Get-ExecutionPolicy для получения политик выполнения, заданных в каждой области. В результате выводится сообщение, что политика выполнения, заданная для текущего пользователя, отличается от политики выполнения, заданной для всех пользователей компьютера. 
Третья команда использует командлет Get-ExecutionPolicy без параметров для получения действующей политики выполнения для текущего пользователя локального компьютера. В результате подтверждается, что политика выполнения, заданная для текущего пользователя, имеет приоритет над политикой, заданной для всех пользователей.






Пример 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Описание
-----------
Эта команда использует значение политики выполнения Undefined для эффективного удаления политики выполнения, заданной для области текущего пользователя. В результате политика выполнения, заданная в групповой политике или в области LocalMachine (все пользователи), является действующей.
Если политику выполнения задать во всех областях как Undefined, а групповую политику не задавать, политика выполнения по умолчанию Restricted является действующей для всех пользователей компьютера.






См. также




Содержание