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
cmdlet 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
cmdlet Set-ExecutionPolicy
使用 ExecutionPolicy 参数指定 RemoteSigned 策略。 Scope 参数指定默认范围值 LocalMachine。 若要查看执行策略设置,请将 Get-ExecutionPolicy
cmdlet 与 List 参数一起使用。
示例 3:获取有效的执行策略
此示例演示如何显示 PowerShell 会话的有效执行策略。
PS> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
PS> Get-ExecutionPolicy
AllSigned
cmdlet Get-ExecutionPolicy
使用 List 参数显示每个范围的执行策略。 运行 Get-ExecutionPolicy
cmdlet 时不使用参数来显示有效执行策略 AllSigned。
示例 4:取消阻止脚本以在不更改执行策略的情况下运行它
此示例演示 RemoteSigned 执行策略如何阻止运行未签名的脚本。
最佳做法是在使用 Unblock-File
cmdlet 之前读取脚本的代码并验证它是否安全。 cmdlet 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
cmdlet 显示 RemoteSigned 是当前 PowerShell 会话的有效执行策略。
Start-ActivityTracker.ps1 脚本从当前目录执行。 该脚本被 RemoteSigned 阻止,因为该脚本未进行数字签名。
对于此示例,脚本的代码经过审查并验证为可安全运行。 cmdlet Unblock-File
使用 Path 参数取消阻止脚本。
若要验证是否 Unblock-File
未更改执行策略, Get-ExecutionPolicy
请显示有效的执行策略 RemoteSigned。
脚本 Start-ActivityTracker.ps1 从当前目录执行。 该脚本开始运行,因为它已被 cmdlet 取消阻止 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。 由计算机当前用户的组策略设置。
- 过程。 仅影响当前 PowerShell 会话。
- CurrentUser。 仅影响当前用户。
- LocalMachine。 影响计算机所有用户的默认范围。
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
Get-ExecutionPolicy
不接受来自管道的输入。
输出
cmdlet 在 Linux 和 macOS 平台上始终返回 Unrestricted 。
备注
执行策略是 PowerShell 安全策略的一部分。 执行策略确定是可以加载配置文件(如 PowerShell 配置文件)还是运行脚本。 以及脚本在运行之前是否必须进行数字签名。