这是 Windows PowerShell 的执行策略限制问题。PowerShell 默认禁止运行脚本,这是为了安全考虑。
🔍 问题原因
错误信息显示:
无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
这是因为 Windows PowerShell 的**执行策略(Execution Policy)**默认设置为 Restricted,不允许运行任何脚本。
✅ 解决方案
方法 1:临时允许脚本运行(推荐用于测试)
在 PowerShell 中运行:
powershell
# 临时设置执行策略为 RemoteSigned(仅当前会话有效)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# 然后重新运行你的命令
pnpm i -g openclaw@latest
方法 2:永久修改执行策略(推荐用于开发)
powershell
# 以管理员身份运行 PowerShell
# 然后执行:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
# 确认修改
Get-ExecutionPolicy -List
方法 3:使用 PowerShell ISE 或 VS Code
如果你使用的是 VS Code 的集成终端,可以在 VS Code 中运行:
powershell
# 在 VS Code 终端中执行
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
pnpm i -g openclaw@latest
📋 执行策略说明
| 策略 | 说明 | 安全性 |
|---|---|---|
Restricted |
不允许运行任何脚本(默认) | ⭐⭐⭐⭐⭐ |
RemoteSigned |
本地脚本可以运行,远程脚本需要签名 | ⭐⭐⭐⭐ |
Unrestricted |
所有脚本都可以运行 | ⭐⭐ |
Bypass |
不阻止任何脚本 | ⭐ |
🎯 推荐操作步骤
-
以管理员身份打开 PowerShell
- 右键点击 PowerShell
- 选择"以管理员身份运行"
-
修改执行策略
powershellSet-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -
确认修改
powershellGet-ExecutionPolicy -List -
重新安装 OpenClaw
powershellpnpm i -g openclaw@latest
⚠️ 安全提示
RemoteSigned策略是开发者的推荐选择- 它允许本地脚本运行,但远程脚本需要数字签名
- 这样既保证了安全性,又不会影响开发工作
🔄 如果仍然有问题
如果上述方法都不行,可以尝试:
powershell
# 完全绕过执行策略(仅当前会话)
powershell -ExecutionPolicy Bypass -Command "pnpm i -g openclaw@latest"
或者直接使用 npm 而不是 pnpm:
powershell
npm install -g openclaw@latest
你现在可以试试方法 1(临时方案),如果成功的话,再考虑使用方法 2(永久方案)。