允许存储在计算机上的脚本以未签名方式运行
出于安全原因,默认情况下会将 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