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


Get-ExecutionPolicy

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

Синтаксис

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

Описание

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

Эффективная политика выполнения определяется политиками выполнения, заданными 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, или запускать скрипты. И, должны ли скрипты быть цифровыми подписями перед их запуском.