脚本专家 发表于 2026-6-13 14:00:00

PowerShell禁止执行脚本错误解决:Set-ExecutionPolicy方法详解

在Windows PowerShell中直接运行.ps1脚本时,经常会遇到以下报错:


无法加载文件 ******.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。
所在位置 行:1 字符: 17
+ E:\Test\test.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException


这个错误的原因是PowerShell的默认执行策略为Restricted,该策略禁止运行任何脚本。为了解决该问题,需要将执行策略更改为RemoteSigned或更宽松的策略。

首先,可以通过以下命令查看当前执行策略:

get-executionpolicy


若输出为Restricted,则需要执行以下命令更改策略:

Set-ExecutionPolicy RemoteSigned


执行该命令后,系统会提示确认更改,并警告安全风险:

执行策略更改
执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies
帮助主题中所述的安全风险。是否要更改执行策略?
是(Y) 否(N) 挂起(S) [?] 帮助 (默认值为"Y"): y


输入Y确认即可。之后再次运行之前报错的脚本即可正常执行。

需要注意,RemoteSigned策略允许运行本地编写的未签名脚本,以及来自远程但具有数字签名的脚本。若需要更严格的安全限制,可以使用AllSigned策略只允许运行经过签名的脚本。若只想临时运行某个脚本而不改变全局策略,可以在命令提示符(CMD)中通过以下命令调用PowerShell脚本:

C:\> powershell -file "c:\batch\demo.ps1"


这种方式不受当前执行策略的限制,适用于一次性执行。同理,运行VBScript可以使用:

C:\> cscript c:\batch\demo.vbs


关于执行策略的详细说明,可以参阅PowerShell帮助:

get-help about_signing


此方法适用于Windows系统下PowerShell脚本因执行策略被拦截的场景,是开发和运维中常见的修复手段。

热心网友5 发表于 2026-6-13 14:05:00

Re: PowerShell禁止执行脚本错误解决:Set-ExecutionPolicy方法详解

感谢楼主分享的详细解决方法!这个错误确实是很多刚接触PowerShell的朋友常遇到的问题,楼主把从查看策略到更改策略的步骤都讲得很清楚,特别是提供了`RemoteSigned`和`AllSigned`两种策略的对比,还有用`powershell -file`临时绕过的技巧,非常实用。对于需要快速解决脚本执行问题的运维和开发人员来说,这份指南很有帮助。

热心网友5 发表于 2026-6-17 14:15:00

Re: PowerShell禁止执行脚本错误解决:Set-ExecutionPolicy方法详解

非常感谢楼主分享这么详细的解决方法!之前也遇到过这个报错,当时查资料折腾了半天,您这篇把原理和步骤都讲得很清楚,尤其是“临时运行用 powershell -file”这个技巧,确实很实用。另外补充一个小点:如果只想单次绕过策略而不修改全局设置,也可以用 `powershell -ExecutionPolicy Bypass -File script.ps1` 来执行,这样更安全。再次感谢楼主的经验!

热心网友3 发表于 2026-6-17 16:25:00

Re: PowerShell禁止执行脚本错误解决:Set-ExecutionPolicy方法详解

感谢楼主的详细讲解!这个报错确实很常见,尤其是刚接触PowerShell脚本的新手。你提到的`RemoteSigned`策略在开发环境里很实用,既不影响本地脚本,又能对远程脚本保留签名校验。 另外补充一点:如果是在公司域环境里,管理员可能通过组策略锁定了执行策略,这时候用`Set-ExecutionPolicy`可能会被拒绝。我遇到这种情况时,通常会在脚本开头加一段`Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`来临时绕过当前会话限制,或者直接像你说的用`powershell -file`调用,省心又安全。 想问下楼主,在使用`RemoteSigned`后有没有遇到过某些第三方脚本因为数字签名问题依然被阻拦的情况?
页: [1]
查看完整版本: PowerShell禁止执行脚本错误解决:Set-ExecutionPolicy方法详解