解决Windows安装OpenClaw报错:无法加载npm.ps1,禁止运行脚本

解决Windows安装OpenClaw报错:无法加载npm.ps1,禁止运行脚本

问题现象

在Windows PowerShell中执行OpenClaw安装命令时,出现如下权限错误:

powershell 复制代码
PS C:\Users\tangyuan> & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta

  OpenClaw Installer

[OK] Windows detected
[!] Node.js not found
[*] Installing Node.js...
# 省略Node.js安装成功日志
[OK] Node.js v24.14.0 found
[*] Installing OpenClaw (openclaw@beta)...
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:290 字符: 22
+         $npmOutput = npm install -g "$packageName@$Tag" 2>&1
+                      ~~~
    + CategoryInfo          : SecurityError: (:) [],ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess

问题根源

该报错的核心原因是 Windows PowerShell的执行策略限制 :

Windows默认启用严格的执行策略(默认值为Restricted),禁止运行任何未签名的PowerShell脚本,而npm的核心脚本npm.ps1属于未签名的本地脚本,因此被系统拦截。

解决方案(分步实操)

步骤1:以管理员身份打开PowerShell

  1. 按下 Win + X 快捷键,在弹出的菜单中选择「Windows PowerShell (管理员)」(Windows 11为「终端(管理员)」);
  2. 弹出用户账户控制(UAC)提示时,点击「是」确认权限。

步骤2:临时放宽执行策略(推荐)

在管理员权限的PowerShell中执行以下命令(仅当前会话生效,重启后恢复默认,安全无风险):

powershell 复制代码
Set-ExecutionPolicy Bypass -Scope Process -Force

参数说明:

  • -Scope Process:仅对当前PowerShell进程生效,不修改系统全局策略;
  • -Force:跳过确认提示,直接执行。

步骤3:重新执行OpenClaw安装命令

在同一个管理员PowerShell窗口中,重新运行安装指令:

powershell 复制代码
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta

可选:永久放宽执行策略(谨慎使用)

如果需要长期使用Node.js/npm,且确认环境安全,可将执行策略改为RemoteSigned(允许本地脚本运行,远程脚本需签名):

powershell 复制代码
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

注意:该命令对当前用户全局生效,仅建议在个人开发机使用,企业环境需遵循IT规范。

验证安装结果

安装完成后,执行以下命令验证OpenClaw是否成功安装:

powershell 复制代码
openclaw --version

若输出类似 openclaw/x.x.x beta 的版本信息,说明安装成功。

常见问题排查

1. 执行Set-ExecutionPolicy提示「拒绝访问」

  • 确认PowerShell是管理员身份运行;
  • 企业环境可能通过组策略锁定执行策略,需联系IT管理员解除限制。

2. npm依然报错「无法加载脚本」

  • 重启管理员权限的PowerShell后重试;
  • 验证Node.js安装是否成功:node -v(正常输出v24.14.0即可);
  • 手动检查npm路径:Get-Command npm(应指向C:\Program Files\nodejs\npm.ps1)。

总结

  1. Windows默认的PowerShell执行策略是导致npm脚本无法运行的核心原因;
  2. 优先使用「临时放宽执行策略」(-Scope Process),兼顾易用性和安全性;
  3. 永久修改执行策略仅适用于个人开发环境,生产/企业环境需严格遵循安全规范。

扩展知识:PowerShell执行策略说明

执行策略 说明
Restricted 默认值,禁止运行任何脚本
AllSigned 仅允许运行已签名的脚本(本地/远程均需签名)
RemoteSigned 本地脚本可运行,远程脚本需签名(推荐开发环境使用)
Unrestricted 允许运行所有脚本(不推荐,有安全风险)
Bypass 绕过所有执行策略限制(仅临时使用)
相关推荐
FRing035 分钟前
JavaScript入门到精通三十三(异常处理、call方法、apply方法、bind方法、防抖、节流)
开发语言·前端·javascript
计算机魔术师1 小时前
OpenAI 砍掉 100 亿融资目标,AI 资本市场的温度计变了
前端
jktantan1 小时前
(二)Vue 3 的 attrs 不是响应式:el-form 扩展属性同步的三种方案
前端·javascript·vue.js·element-plus
前端 贾公子2 小时前
第 5 章:Codex 从可运行程序到可交付工具
java·前端·数据库
2501_916007472 小时前
Windows OpenSSL 生成 iOS 证书,制作 p12 与描述文件,KXBuild 签名实操
windows·vscode·ios·objective-c·个人开发·swift·敏捷流程
用户360055579002 小时前
Kestrel_VLLM - 26 · 发射空档三步曲:事件计时 → nsys → 判别实验
前端
echome8882 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise
PedroQue992 小时前
v0.2.0 架构升级:class + reactive 重塑状态管理
前端·uni-app
鶴哥只手遮天2 小时前
Angular 22 源码级深度解析-第 02 章 编译链路总览:从模板字符串到 `ɵɵ` 指令
前端·开源·angular.js
尘世中一位迷途小书童2 小时前
别再堆万字 Prompt:用 Agent Skills 给团队写一个「前端 Review」Skill
前端·ai编程·cursor