故障排查
OpenClaw Windows 安装报错:无法加载脚本 / 执行策略限制 解决方法
在 Windows PowerShell 中安装 OpenClaw 时遇到脚本被禁止运行的错误?这是 PowerShell 的执行策略默认设置,不是 OpenClaw 的 bug。一条命令即可解决。
报错现象
在 Windows PowerShell 中运行 OpenClaw 安装命令或任何 npm 命令时,可能会看到如下报错:
npm.ps1 cannot be loaded because running scripts is disabled on this system.
For more information, see about_execution_policies at
https:/go.microsoft.com/fwlink/?LinkID=135170.触发此错误的常见场景包括:
- 运行 OpenClaw 官方安装命令:
iwr -useb https://openclaw.ai/install.ps1 | iex - 安装完 Node.js 后首次运行
npm install、npx等任何 npm 相关命令 - 在 PowerShell 中直接执行任何
.ps1脚本文件
原因说明
这是 Windows PowerShell 的安全机制 —— 执行策略(ExecutionPolicy)在起作用。Windows 默认将执行策略设置为 Restricted,完全禁止运行任何 PowerShell 脚本(包括 npm 自带的 npm.ps1 启动脚本)。
执行策略的存在是为了防止恶意脚本在用户不知情的情况下运行。这是系统层面的保护,与 OpenClaw 本身无关,也不代表你下载的安装包有问题。
npm 之所以也会触发这个错误,是因为 npm 在 Windows 上通过一个叫 npm.ps1 的 PowerShell 脚本来启动,而不是直接的 .exe 文件。只要执行策略是 Restricted,任何 .ps1 脚本都无法运行,自然包括 npm。
解决方法
方法一:仅对当前会话解除限制(推荐)
这是最安全的做法。在 PowerShell 窗口中运行以下命令,仅对当前打开的这个会话临时放开执行策略,关闭窗口后自动恢复默认:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass命令执行后无需重启,直接在同一个 PowerShell 窗口中重新运行你的 OpenClaw 安装命令即可:
iwr -useb https://openclaw.ai/install.ps1 | iex方法二:对当前用户持久生效
如果你希望以后每次打开 PowerShell 都不用重新设置,可以将当前用户的执行策略改为 RemoteSigned。这允许运行本地脚本,但从网络下载的脚本必须有数字签名才能执行:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedPowerShell 会提示你确认,输入 Y 回车即可。这个设置只影响你自己的用户账户,不影响其他用户或系统整体策略。
方法三:以管理员身份运行 PowerShell
部分情况下,当前用户的执行策略修改会被系统级策略覆盖。此时需要以管理员身份运行 PowerShell:
- 按
Win + X,选择「Windows PowerShell(管理员)」或「终端(管理员)」 - 在弹出的 UAC 确认框中点击「是」
- 在管理员 PowerShell 中运行方法一或方法二的命令,然后再执行安装
方法四:确认 npm 触发原因及验证
完成上述任意一种方法后,可以用以下命令验证执行策略是否已生效:
Get-ExecutionPolicy -List输出中 Process 一行显示 Bypass(方法一)或 CurrentUser 一行显示 RemoteSigned(方法二)即表示设置成功。此后 npm 命令和 OpenClaw 安装脚本均可正常运行。
不需要切换到 Git Bash 或 WSL
你可能在网上看到有人建议「换用 Git Bash」或「切换到 WSL」来绕过这个问题。这些方法确实可行,但并非必要。按照上述方法放开 PowerShell 执行策略后,直接在 PowerShell 中安装和使用 OpenClaw 完全没问题,无需额外安装 Git Bash 或配置 WSL。
WSL(Windows Subsystem for Linux)是另一种在 Windows 上运行 OpenClaw 的方式,适合熟悉 Linux 环境的用户,但如果你只是想在 Windows 本地快速安装 OpenClaw,PowerShell + 执行策略修改是最直接的路径。
安全注意事项
在修改执行策略时,请注意以下安全原则,避免不必要的风险:
- 使用
-Scope Process(当前会话)或-Scope CurrentUser(当前用户)来限定范围,不要使用-Scope LocalMachine修改机器级别策略 - 不要将执行策略设置为
Unrestricted—— 这会允许运行任何来源的脚本,包括未经签名的网络脚本,存在安全隐患 RemoteSigned是推荐的持久设置:本地脚本可随意运行,从网络下载的脚本需要数字签名- 只从 OpenClaw 官方渠道(openclaw.ai)下载安装脚本,不要执行来历不明的 ps1 文件
常见问题(FAQ)
设置执行策略后重启电脑会失效吗?
取决于你使用的范围。-Scope Process 是临时的,关闭 PowerShell 窗口后即失效,重启电脑后当然也需要重新设置。-Scope CurrentUser 是持久的,保存在注册表中,重启电脑后依然有效,无需重复设置。
为什么 cmd(命令提示符)没有这个问题?
Windows 的 cmd 使用 .bat 或 .cmd 脚本,不受 PowerShell 执行策略限制。但 npm 在 PowerShell 中会优先调用 npm.ps1,在 cmd 中会调用 npm.cmd,所以同样的 npm 命令在 cmd 中通常不受此问题影响。如果你习惯使用 cmd,也可以直接在 cmd 中运行 OpenClaw 安装命令。
修改执行策略会影响系统安全吗?
使用 -Scope CurrentUser -ExecutionPolicy RemoteSigned 对系统安全影响极小。它只允许运行本地脚本和有数字签名的远程脚本,不允许运行未签名的远程脚本。这是微软在 Windows 10/11 上对开发者推荐的默认设置之一,被广泛采用。
除了执行策略问题,OpenClaw Windows 安装还有哪些常见坑?
解决执行策略问题后,Windows 安装 OpenClaw 的另一个常见问题是 Node.js 版本过低。OpenClaw 要求 Node.js 18 或以上版本。可以运行 node -v 查看当前版本,如果版本过低,前往 nodejs.org 下载最新 LTS 版本重新安装即可。此外,如果你想省去所有本地安装烦恼,也可以直接使用 OpenClaw Launch 托管部署,无需在本地安装任何环境。