Поделиться через


Get-ExecutionPolicy

Возвращает политики выполнения для текущего сеанса.

Синтаксис

Get-ExecutionPolicy
   [[-Scope] <ExecutionPolicyScope>]
   [-List]
   [<CommonParameters>]

Описание

Чтобы отобразить политики выполнения для каждой области в порядке приоритета, используйте Get-ExecutionPolicy -List. Чтобы просмотреть эффективную политику выполнения для сеанса PowerShell, используйте Get-ExecutionPolicy без параметров.

Эффективная политика выполнения определяется политиками выполнения, которые задаются параметрами Set-ExecutionPolicy и групповой политики.

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

Примеры

Пример 1. Получение всех политик выполнения

Эта команда отображает политики выполнения для каждой области в порядке приоритета.

Get-ExecutionPolicy -List

Scope          ExecutionPolicy
-----          ---------------
MachinePolicy  Undefined
UserPolicy     Undefined
Process        Undefined
CurrentUser    AllSigned
LocalMachine   Undefined

Командлет Get-ExecutionPolicy использует параметр списка для отображения политики выполнения каждой области.

Пример 2. Настройка политики выполнения

В этом примере показано, как задать политику выполнения для локального компьютера.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

Командлет Set-ExecutionPolicy использует параметр ExecutionPolicy для указания политики RemoteSigned. Параметр указывает значение области по умолчанию, LocalMachine. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром списка .

Пример 3. Получение эффективной политики выполнения

В этом примере показано, как отобразить эффективную политику выполнения для сеанса PowerShell.

PS> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

PS> Get-ExecutionPolicy

AllSigned

Командлет Get-ExecutionPolicy использует параметр списка для отображения политики выполнения каждой области. Командлет Get-ExecutionPolicy выполняется без параметра для отображения действующей политики выполнения AllSigned.

Пример 4. Разблокировка скрипта для его запуска без изменения политики выполнения

В этом примере показано, как политика выполнения RemoteSigned запрещает выполнение неподписанных скриптов.

Рекомендуется прочитать код скрипта и убедиться, что он безопасен перед использованием командлетаUnblock-File. Командлет Unblock-File разблокирует скрипты, чтобы они могли выполняться, но не изменяют политику выполнения.

PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS> Unblock-File -Path .\Start-ActivityTracker.ps1

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

Task 1:

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

Командлет Get-ExecutionPolicy показывает, что RemoteSigned является эффективной политикой выполнения для текущего сеанса PowerShell.

Скрипт Start-ActivityTracker.ps1 выполняется из текущего каталога. Скрипт блокируется RemoteSigned, так как скрипт не имеет цифровой подписи.

В этом примере код скрипта был проверен и проверен как безопасный для запуска. Командлет Unblock-File использует параметр пути для разблокировки скрипта.

Чтобы убедиться, что Unblock-File не изменили политику выполнения, Get-ExecutionPolicy отображает эффективную политику выполнения RemoteSigned.

Скрипт, Start-ActivityTracker.ps1 выполняется из текущего каталога. Скрипт начинает выполняться, так как он был разблокирован командлетом Unblock-File.

Параметры

-List

Возвращает все значения политики выполнения для сеанса. По умолчанию Get-ExecutionPolicy получает только эффективную политику выполнения.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Scope

Указывает область, затронутую политикой выполнения.

Эффективная политика выполнения определяется порядком приоритета следующим образом:

  • MachinePolicy. Установлено групповой политикой для всех пользователей компьютера.
  • UserPolicy. Установлено групповой политикой для текущего пользователя компьютера.
  • Process. Влияет только на текущий сеанс PowerShell.
  • LocalMachine. Область по умолчанию, влияющая на всех пользователей компьютера.
  • CurrentUser. Влияет только на текущего пользователя.
Тип:ExecutionPolicyScope
Допустимые значения:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:0
Default value:Effective execution policy
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

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

None

Невозможно передать объекты в этот командлет.

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

ExecutionPolicy

Командлет всегда возвращает Неограниченно на платформах Linux и macOS. На платформах Windows она возвращает текущую политику выполнения.

Примечания

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