如何使用PowerShell执行策略()

本文概述

  • PowerShell执行策略
  • 执行策略范围
  • 管理执行策略
  • 更改执行策略
  • 删除执行策略
执行策略是PowerShell的功能, 用于指定PowerShell加载配置文件和运行脚本的条件。
在Windows操作系统上, 我们可以为当前用户, 本地计算机或特定会话设置执行策略。当前用户和本地计算机的执行策略存储在注册表中, 而特定会话的执行策略仅存储在内存中, 当关闭会话时, 该策略将丢失。
在非Windows操作系统上, 默认执行策略不受限制。这个政策不能改变。
PowerShell执行策略 以下是PowerShell执行策略:
  • 全部签名
  • 旁路
  • 远程签名
  • 受限制的
  • 未定义
  • 无限制
全部签名
  • 只有那些脚本可以运行, 这些脚本由受信任的发布者使用数字签名签名。
  • 在运行脚本之前, 此策略会提示你确认是否信任发布者。
旁路
  • 在此政策中, 不会阻止任何内容。
  • 没有警告, 也没有提示。
  • 绕过策略主要是针对将PowerShell脚本内置到大型应用程序中的那些配置而设计的。
远程签名
  • 这是Windows Server计算机的默认执行策略。
  • 此策略要求在配置文件和脚本上有来自受信任的发布者的数字签名。这些文件和脚本是从Internet下载的, 其中包括电子邮件和即时消息传递程序。
  • 此执行策略不需要在本地计算机上编写的那些脚本上的数字签名。
受限制的
  • Windows客户端计算机默认情况下可以使用此执行策略。
  • 它不允许运行脚本, 但允许单独的命令。
未定义
  • 当前范围内未定义执行策略。
无限制
  • 这是非Windows计算机的默认执行策略。
  • 此策略将执行那些未签名的脚本。
执行策略范围 以下是执行策略范围的有效值:
  • 机器政策
  • 用户政策
  • 处理
  • 当前用户
  • 本地机器
机器政策
此范围由所有计算机用户的组策略设置。
用户政策
此范围由组策略为计算机的当前用户设置。
处理
此作用域仅影响PowerShell的当前会话。
当前用户
在此范围内, 执行策略仅影响当前范围。
本地机器
在此范围内, 执行策略会影响当前计算机上的所有用户。
管理执行策略
  • 我们可以使用以下Cmdlet来获取当前PowerShell会话的有效执行策略:
Get-ExecutionPolicy

  • 我们可以使用以下命令来获取影响当前会话的所有执行策略。并且, 使用此命令, 我们以优先顺序显示它们。
Get-ExecutionPolicy -list

上面命令的输出如下所示:
如何使用PowerShell执行策略()

文章图片
  • 我们可以使用-Scope参数来获取特定范围的执行策略。例如, 以下命令获取LocalMachine Scope的执行策略:
Get-ExecutionPolicy -Scope LocalMachine

上面的命令将输出显示为RemoteSigned
更改执行策略
  • 我们可以使用Set-ExecutionPolicy cmdlet更改Windows计算机上PowerShell的执行策略。你所做的更改将立即受到影响。你不需要重新启动PowerShell窗口。
  • 如果你在范围CurrentUser和LocalMachine的执行策略中进行了某些更改, 则这些更改将保存在注册表中, 并且它们将一直有效, 直到你再次更改它们为止。
  • 如果你在” 流程” 范围的执行策略中进行更改, 则这些更改不会保存在注册表中。
  • 以下块为你描述了用于更改执行策略的语法:
Set-ExecutionPolicy -ExecutionPolicy < PolicyName>

删除执行策略 我们可以通过将执行策略设置为Undefined来删除特定范围的执行策略。
【如何使用PowerShell执行策略()】示例:此示例删除本地计算机所有用户的执行策略。
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine

    推荐阅读