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


Get-ExecutionPolicy

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

Синтаксис

All

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
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Scope

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

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

  • MachinePolicy. Установлено групповой политикой для всех пользователей компьютера.
  • UserPolicy. Установлено групповой политикой для текущего пользователя компьютера.
  • Process. Влияет только на текущий сеанс PowerShell.
  • LocalMachine. Область по умолчанию, влияющая на всех пользователей компьютера.
  • CurrentUser. Влияет только на текущего пользователя.

Свойства параметра

Тип:ExecutionPolicyScope
Default value:Effective execution policy
Допустимые значения:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:0
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

None

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

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

ExecutionPolicy

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

Примечания

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