问题描述:
问题原因:
Windows PowerShell 的执行策略用于控制脚本的运行权限和安全性。
以下是几种常见的执行策略及其特点:
-
例如,如果您从可靠的软件供应商获取了一个经过数字签名的脚本安装程序,在AllSigned
:只允许运行经过数字签名的脚本。这意味着无论是本地创建的还是从网络获取的脚本,都必须具有有效的数字签名才能执行。这种策略提供了很高的安全性,但可能会对一些自编写的未签名脚本的运行造成限制。AllSigned
策略下可以顺利运行。 -
比如,您在本地编写用于自动化一些日常任务的脚本可以直接运行,但从网上下载的脚本就需要有签名才能执行。RemoteSigned
:本地创建的脚本可以运行,无需数字签名;从网络(如 Internet)下载的脚本必须由受信任的发布者进行数字签名,才能运行。在保证一定安全性的同时,给本地开发和使用脚本提供了一定的灵活性。 -
例如,如果您不太了解脚本的来源和安全性,运行未知脚本可能会导致系统受到恶意软件的攻击。Unrestricted
:允许运行所有脚本,不进行任何限制,但可能存在较高的安全风险。 -
Restricted
:不允许运行任何脚本,包括本地创建的脚本。这是最严格的限制策略,适用于对安全性有极高要求的场景。
解决方案:
// 查看当前脚本执行策略(可不执行)
get-executionpolicy(得到的结果大概率是Restricted)
// 将脚本执行策略设置成RemoteSigned
Set-ExecutionPolicy RemoteSigned