PowerShell 执行策略2025年3月17日 | 阅读 3 分钟 执行策略是 PowerShell 的一个功能,它指定了 PowerShell 加载配置文件和运行脚本的条件。 在 Windows 操作系统上,我们可以为当前用户、本地计算机或特定会话设置执行策略。当前用户和本地计算机的执行策略存储在注册表中,而特定会话的执行策略仅存储在内存中,当会话关闭时就会丢失。 在非 Windows 操作系统上,默认执行策略是不受限制的。并且此策略无法更改。 PowerShell 执行策略以下是 PowerShell 执行策略 - AllSigned(全部签名)
- Bypass(绕过)
- RemoteSigned(远程签名)
- Restricted(受限)
- 未定义
- Unrestricted(不受限制)
AllSigned(全部签名) - 只有那些由受信任的发布者使用数字签名签名的脚本才能运行。
- 在运行脚本之前,此策略会提示您确认您是否信任发布者。
Bypass(绕过) - 在此策略中,没有任何东西被阻止。
- 不提供任何警告,也不提供任何提示。
- Bypass 策略主要设计用于将 PowerShell 脚本构建到更大的应用程序中的配置。
RemoteSigned(远程签名) - 这是 Windows Server 计算机的默认执行策略。
- 此策略要求从受信任的发布者对配置文件和脚本进行数字签名。这些文件和脚本是从互联网下载的,包括电子邮件和即时消息程序。
- 此执行策略不需要对在本地计算机上编写的脚本进行数字签名。
Restricted(受限) - 此执行策略默认适用于 Windows 客户端计算机。
- 它不允许运行脚本,但允许单个命令。
未定义 Unrestricted(不受限制) - 这是非 Windows 计算机的默认执行策略。
- 此策略执行未签名的脚本。
执行策略范围以下是执行策略范围的有效值 - MachinePolicy(机器策略)
- UserPolicy(用户策略)
- 过程
- CurrentUser(当前用户)
- LocalMachine(本地机器)
MachinePolicy(机器策略) 此范围由组策略为所有计算机用户设置。 UserPolicy(用户策略) 此范围由组策略为计算机的当前用户设置。 过程 此范围仅影响 PowerShell 的当前会话。 CurrentUser(当前用户) 在此范围内,执行策略仅影响当前范围。 LocalMachine(本地机器) 在此范围内,执行策略影响当前计算机上的所有用户。 管理执行策略- 我们可以使用以下 Cmdlet 获取当前 PowerShell 会话的有效执行策略
- 我们可以使用以下命令获取影响当前会话的所有执行策略。并且,使用此命令,我们按优先级顺序显示它们。
上述命令的输出如下所示  - 我们可以使用 -Scope 参数来获取特定范围的执行策略。例如,以下命令获取 LocalMachine 范围的执行策略
上述命令将显示输出为 RemoteSigned 更改执行策略- 我们可以在 Windows 计算机上使用 Set-ExecutionPolicy cmdlet 来更改 PowerShell 的执行策略。您所做的更改会立即生效。您不需要重新启动 PowerShell 窗口。
- 如果您为 CurrentUser 和 LocalMachine 范围的执行策略进行了一些更改,则这些更改将保存在注册表中,并且它们将保持有效,直到您再次更改它们。
- 如果您对 Process 范围的执行策略进行了更改,则它们不会保存在注册表中。
- 以下块描述了用于更改执行策略的语法
删除执行策略我们可以通过将执行策略设置为 Undefined 来删除特定范围的执行策略。 示例:此示例删除本地计算机所有用户的执行策略。
|