当我尝试执行 PowerShell 脚本时出现此错误:
无法加载文件 C:\Common\Scripts\hello.ps1,因为此系统已禁用脚本执行。请参阅“get-help about_signing”了解更多详细信息。第
1 行,字符:13
+ .\hello.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
答案1
使用“以管理员身份运行”选项启动 Windows PowerShell。只有计算机上的管理员组成员才能更改执行策略。
输入以下命令启用运行未签名的脚本:
set-executionpolicy remotesigned
这将允许运行您在本地计算机上编写的未签名脚本以及来自互联网的签名脚本。
也可以看看运行脚本在 Microsoft TechNet 库中。
答案2
答案3
在我用来开发脚本的机器上,我将使用上述的 -unrestricted。然而,在将脚本部署到最终用户机器时,我只需使用 -executionpolicy 开关调用 powershell:
powershell.exe -noprofile -executionpolicy bypass -file .\script.ps1
答案4
根据 Windows 版本和配置,即使在Unrestricted
模式下,您也可能会收到以下警告:
Security warning Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D")
解决方案是使用“绕过”策略,并使用以下命令启用:
Set-ExecutionPolicy Bypass
来自文档:
绕过:没有任何阻止,也没有任何警告或提示。
这显然是不安全的,请了解其中的风险。