Поиск по сайту:

Get-ExecutionPolicy (Microsoft.PowerShell.Security)


Get-ExecutionPolicy

Модуль:
Microsoft.PowerShell.Security

Получает политики выполнения для текущего сеанса.

Синтаксис

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 использует параметр List для отображения политики выполнения каждой области.

Пример 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. Параметр Scope указывает значение области по умолчанию — LocalMachine. Чтобы просмотреть параметры политики выполнения, используйте командлет Get-ExecutionPolicy с параметром List.

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

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

PS> Get-ExecutionPolicy -List

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

PS> Get-ExecutionPolicy

AllSigned

Командлет Get-ExecutionPolicy использует параметр List для отображения политики выполнения каждой области. Командлет 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 использует параметр Path для разблокировки сценария.

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

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

Параметры

-List

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

Тип :

SwitchParameter

Позиция:

Именованный

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

None

Необходимый:

False

Примите ввод конвейера:

False

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

False

-Scope

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

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

  • MachinePolicy. Устанавливается групповой политикой для всех пользователей компьютера.
  • Политика пользователя. Устанавливается групповой политикой для текущего пользователя компьютера.
  • Процесс. Влияет только на текущий сеанс PowerShell.
  • Локальный компьютер. Область по умолчанию, которая влияет на всех пользователей компьютера.
  • ТекущийПользователь. Влияет только на текущего пользователя.
Тип :

Область выполнения политики

Принятые значения:

ТекущийUser, LocalMachine, MachinePolicy, Процесс, UserPolicy

Позиция:

0

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

Эффективная политика исполнения

Необходимый:

False

Примите ввод конвейера:

True

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

False

Входы

Нет

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

Выходы

Политика выполнения

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

Примечания

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