windows 下无法加载文件 xxx.ps1,因为在此系统上禁止运行脚本
来源:本站原创
点击数: 次
发布时间:2025年09月25日
这个错误信息:
“无法加载文件 xxx.ps1,因为在此系统上禁止运行脚本”
是 PowerShell 的 执行策略(Execution Policy) 限制导致的。
系统为了安全,默认禁止执行 .ps1
脚本。
一、错误原因
PowerShell 有一层安全机制叫 执行策略 (Execution Policy),
它控制脚本是否能被运行。
默认情况下,
Windows 上一般是:
Restricted
(禁止运行任何脚本)
二、查看当前执行策略
打开 PowerShell(建议用管理员身份):
Get-ExecutionPolicy
可能输出:
Restricted
表示禁止执行。
三、解决方案(推荐安全方式)
方式 1:仅在当前 PowerShell 会话中放宽限制(推荐)
这不会改变系统设置,仅本次窗口有效:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
然后再执行你的脚本:
.\xxx.ps1
关闭窗口后,安全策略会恢复默认。
方式 2:为当前用户永久放宽权限
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
解释:
RemoteSigned
表示:本地脚本可直接执行;
从网络下载的脚本需有数字签名;
安全性和实用性较平衡。
方式 3:管理员全局放宽(不推荐)
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
这会影响所有用户,不建议随意修改。
四、常见执行策略说明
策略 | 说明 |
---|---|
Restricted | 禁止运行所有脚本(默认) |
AllSigned | 仅允许签名脚本 |
RemoteSigned | 本地脚本可执行,下载的需签名(推荐) |
Unrestricted | 可执行所有脚本,会有风险提示 |
Bypass | 完全不限制(仅适合临时调试) |
五、快速临时执行(无需修改策略)
如果你只想执行一次某个脚本,也可以直接用:
powershell -ExecutionPolicy Bypass -File "C:\path\xxx.ps1"
这样不会修改系统设置。
总结
目的 | 命令 |
---|---|
临时放开当前会话 | Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass |
永久放开当前用户 | Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned |
仅执行一次脚本 | powershell -ExecutionPolicy Bypass -File .\xxx.ps1 |