签署脚本

对脚本进行签名将使你的脚本符合 PowerShell 中的所有执行策略,并确保脚本的完整性。如果已签名的脚本在签名后被修改,则无法运行。

脚本签名需要代码签名证书。建议:

  • 个人脚本/测试(未共享):来自可信认证机构(内部或第三方)的证书自签名证书。
  • 共享内部组织:来自可信认证机构(内部或第三方)的证书
  • 共享外部组织:来自可信第三方认证机构的证书

阅读 about_Signing @ TechNet 的更多信息

执行政策

PowerShell 具有可配置的执行策略,可控制脚本或配置执行所需的条件。可以为多个范围设置执行策略; 计算机,当前用户和当前进程。可以轻松绕过执行策略,但不是为了限制用户,而是保护他们不会无意中违反签名策略。

可用的政策是:

设置 描述
受限 不允许脚本
使用 AllSigned 所有脚本都需要签名
下 RemoteSigned 允许所有本地脚本; 只签名远程脚本
无限制 没有要求。允许所有脚本,但在运行从 Internet 下载的脚本之前会发出警告
旁路 允许所有脚本,不显示任何警告
未定义 删除当前范围的当前执行策略。使用父策略。如果未定义所有策略,则将使用受限制。

启动 powershell.exe 进程时,可以使用 Set-ExecutionPolicy-cmdlet,组策略或 -ExecutionPolicy 参数修改当前执行策略。

阅读 about_Execution_Policies @ TechNet 的更多信息