← 首页

故障排查

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 installnpx 等任何 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 RemoteSigned

PowerShell 会提示你确认,输入 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 托管部署,无需在本地安装任何环境。

不想折腾本地安装?

跳过 PowerShell、Node.js、Docker 等所有环境配置,30 秒在线部署你的 OpenClaw AI 机器人。

开始托管部署