本文概述
执行策略是PowerShell的功能, 用于指定PowerShell加载配置文件和运行脚本的条件。
在Windows操作系统上, 我们可以为当前用户, 本地计算机或特定会话设置执行策略。当前用户和本地计算机的执行策略存储在注册表中, 而特定会话的执行策略仅存储在内存中, 当关闭会话时, 该策略将丢失。
在非Windows操作系统上, 默认执行策略不受限制。这个政策不能改变。
PowerShell执行策略
以下是PowerShell执行策略:
- 全部签名
- 旁路
- 远程签名
- 受限制的
- 未定义
- 无限制
全部签名
- 只有那些脚本可以运行, 这些脚本由受信任的发布者使用数字签名签名。
- 在运行脚本之前, 此策略会提示你确认是否信任发布者。
旁路
- 在此政策中, 不会阻止任何内容。
- 没有警告, 也没有提示。
- 绕过策略主要是针对将PowerShell脚本内置到大型应用程序中的那些配置而设计的。
远程签名
- 这是Windows Server计算机的默认执行策略。
- 此策略要求在配置文件和脚本上有来自受信任的发布者的数字签名。这些文件和脚本是从Internet下载的, 其中包括电子邮件和即时消息传递程序。
- 此执行策略不需要在本地计算机上编写的那些脚本上的数字签名。
受限制的
- Windows客户端计算机默认情况下可以使用此执行策略。
- 它不允许运行脚本, 但允许单独的命令。
未定义
- 当前范围内未定义执行策略。
无限制
- 这是非Windows计算机的默认执行策略。
- 此策略将执行那些未签名的脚本。
执行策略范围
以下是执行策略范围的有效值:
- 机器政策
- 用户政策
- 处理
- 当前用户
- 本地机器
机器政策
此范围由所有计算机用户的组策略设置。
用户政策
此范围由组策略为计算机的当前用户设置。
处理
此作用域仅影响PowerShell的当前会话。
当前用户
在此范围内, 执行策略仅影响当前范围。
本地机器
在此范围内, 执行策略会影响当前计算机上的所有用户。
管理执行策略
- 我们可以使用以下Cmdlet来获取当前PowerShell会话的有效执行策略:
Get-ExecutionPolicy
- 我们可以使用以下命令来获取影响当前会话的所有执行策略。并且, 使用此命令, 我们以优先顺序显示它们。
Get-ExecutionPolicy -list
上面命令的输出如下所示:
- 我们可以使用-Scope参数来获取特定范围的执行策略。例如, 以下命令获取LocalMachine Scope的执行策略:
Get-ExecutionPolicy -Scope LocalMachine
上面的命令将输出显示为RemoteSigned
更改执行策略
- 我们可以使用Set-ExecutionPolicy cmdlet更改Windows计算机上PowerShell的执行策略。你所做的更改将立即受到影响。你不需要重新启动PowerShell窗口。
- 如果你在范围CurrentUser和LocalMachine的执行策略中进行了某些更改, 则这些更改将保存在注册表中, 并且它们将一直有效, 直到你再次更改它们为止。
- 如果你在”流程”范围的执行策略中进行更改, 则这些更改不会保存在注册表中。
- 以下块为你描述了用于更改执行策略的语法:
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
删除执行策略
我们可以通过将执行策略设置为Undefined来删除特定范围的执行策略。
示例:此示例删除本地计算机所有用户的执行策略。
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
评论前必须登录!
注册