如何启用 PowerShell 脚本的执行?

如何启用 PowerShell 脚本的执行?

当我尝试执行 PowerShell 脚本时出现此错误:

无法加载文件 C:\Common\Scripts\hello.ps1,因为此系统已禁用脚本执行。请参阅“get-help about_signing”了解更多详细信息。第
1 行,字符:13
+ .\hello.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException

答案1

  1. 使用“以管理员身份运行”选项启动 Windows PowerShell。只有计算机上的管理员组成员才能更改执行策略。

  2. 输入以下命令启用运行未签名的脚本:

    set-executionpolicy remotesigned
    

这将允许运行您在本地计算机上编写的未签名脚本以及来自互联网的签名脚本。

也可以看看运行脚本在 Microsoft TechNet 库中。

答案2

默认执行策略设置为受限制的,你可以通过运行来查看获取执行策略

Get-ExecutionPolicy

跑步设置执行策略像这样切换到不受限制模式:

Set-ExecutionPolicy unrestricted

答案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

来自文档

绕过:没有任何阻止,也没有任何警告或提示。

这显然是不安全的,请了解其中的风险。

相关内容