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


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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

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

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

  • MachinePolicy. Устанавливается групповая политика для всех пользователей компьютера.
  • UserPolicy. Задается групповая политика для текущего пользователя компьютера.
  • Process. Влияет только на текущий сеанс PowerShell.
  • LocalMachine. Область по умолчанию, влияющий на всех пользователей компьютера.
  • CurrentUser. Влияет только на текущего пользователя.
Type:ExecutionPolicyScope
Accepted values:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Position:0
Default value:Effective execution policy
Required:False
Accept pipeline input:True
Accept wildcard characters:False

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

None

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

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

ExecutionPolicy

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

Примечания

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