新手教程
综合资讯
快速解决Windows安装OpenClaw报错:npm.ps1禁止运行脚本
摘要
问题现象 在Windows PowerShell中执行OpenClaw安装命令时,终端可能抛出类似错误:npm脚本被系统
问题现象
在Windows PowerShell中执行OpenClaw安装命令时,终端可能抛出类似错误:npm脚本被系统阻止运行。错误界面如下——

PS C:Userstangyuan> & ([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 Filesnodejsnpm.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的执行策略限制了脚本运行。默认策略Restricted禁止所有未签名的PowerShell脚本。npm核心脚本npm.ps1恰好属于未签名本地脚本,系统直接拦截。
解决方案(分步实操)
步骤1:以管理员身份打开PowerShell
- 按
Win + X,选择「Windows PowerShell (管理员)」——Windows 11用户选择「终端(管理员)」; - UAC弹窗出现时,点击「是」确认权限。
步骤2:临时放宽执行策略(推荐)
在管理员PowerShell中执行以下命令,仅对当前会话生效,重启后恢复默认,安全稳妥:
Set-ExecutionPolicy Bypass -Scope Process -Force
参数说明:
-Scope Process:仅影响当前PowerShell进程,不修改系统全局策略;-Force:跳过确认提示,直接执行。
步骤3:重新执行OpenClaw安装命令
保持当前管理员PowerShell窗口,再次运行安装指令:
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta
可选:永久放宽执行策略(谨慎使用)
若长期使用Node.js/npm且环境安全性可控,可将执行策略改为RemoteSigned——本地脚本可运行,远程脚本需签名:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
注意:该命令对当前用户全局生效,仅限个人开发机使用,企业环境需遵循IT安全规范。
验证安装结果
安装完成后,运行以下命令确认OpenClaw版本:
openclaw --version
命令行输出类似 openclaw/x.x.x beta 的版本号,即安装成功。
常见问题排查
执行Set-ExecutionPolicy提示「拒绝访问」
- 确认PowerShell是否以管理员身份启动;
- 企业环境组策略可能锁死执行策略,需联系IT管理员解除限制。
npm依然报错「无法加载脚本」
- 重启管理员PowerShell后重试;
- 验证Node.js安装状态:
node -v(正常输出v24.14.0则通过); - 手动检查npm路径:
Get-Command npm(应指向C:Program Filesnodejsnpm.ps1)。
总结
- Windows默认PowerShell执行策略
Restricted是npm脚本被阻止的直接原因; - 优先采用「临时放宽执行策略」(
-Scope Process),平衡安全性与功能性; - 永久修改执行策略仅适用于个人开发环境,生产或企业环境需严格遵循安全基线。
扩展知识:PowerShell执行策略说明
| 执行策略 | 说明 |
|---|---|
| Restricted | 默认值,禁止运行任何脚本 |
| AllSigned | 仅允许运行已签名的脚本(本地/远程均需签名) |
| RemoteSigned | 本地脚本可运行,远程脚本需签名(推荐开发环境使用) |
| Unrestricted | 允许运行所有脚本(不推荐,有安全风险) |
| Bypass | 绕过所有执行策略限制(仅临时使用) |
来源:互联网
免责声明
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。