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