允许存储在计算机上的脚本以未签名方式运行

出于安全原因,默认情况下会将 PowerShell 设置为仅允许签名脚本执行。执行以下命令将允许你运行未签名的脚本(必须以管理员身份运行 PowerShell 才能执行此操作)。

Set-ExecutionPolicy RemoteSigned

运行 PowerShell 脚本的另一种方法是使用 Bypass 作为 ExecutionPolicy

powershell.exe -ExecutionPolicy Bypass -File "c:\MyScript.ps1"

或者从现有的 PowerShell 控制台或 ISE 会话中运行:

 Set-ExecutionPolicy Bypass Process

执行策略的临时解决方法也可以通过运行 Powershell 可执行文件并将任何有效策略作为 -ExecutionPolicy 参数传递来实现。该策略仅在进程的生命周期内有效,因此不需要对注册表的管理访问权限。

C:\>powershell -ExecutionPolicy RemoteSigned

还有其他多种政策可供选择,在线网站通常会鼓励你使用 Set-ExecutionPolicy Unrestricted。此策略在更改之前保持不变,并降低系统安全性。这是不可取的。建议使用 RemoteSigned,因为它允许本地存储和编写代码,并且需要使用来自受信任根的证书对远程获取的代码进行签名。

此外,请注意执行策略可能由组策略强制执行,因此即使策略更改为系统范围内的 Unrestricted,组策略也可能会在下一个执行间隔(通常为 15 分钟)恢复该设置。你可以使用 Get-ExecutionPolicy -List 查看各种范围内的执行策略集

TechNet 文档:
Set-ExecutionPolicy
about_Execution_Policies