OpenClaw 开机自启总弹 CMD 黑窗?两招让它在后台悄悄运行
用 OpenClaw 的朋友大概都遇到过:每次开机,桌面就准时弹出一个黑色 CMD 窗口,里面哗哗滚着 Node.js 日志。强迫症看了直接破防——关了怕断后台服务,留着又实在碍眼。
其实解决思路很明确:不必禁用开机自启,只要改一改启动方式,让它在后台静默运行就行。
通过任务计划程序静默启动
OpenClaw 在 Windows 上通常靠任务计划程序实现开机自启,默认会拉起一个 CMD 窗口来跑 Node.js 服务。我们要做的,就是改掉这个任务,让它在后台运行。
操作步骤
1. 打开任务计划程序 按 Win + R,输入 taskschd.msc 回车。


2. 找到 OpenClaw 任务 在左侧「任务计划程序库」里,找名字带 OpenClaw、openclaw-gateway 之类的任务。

3. 修改任务属性 右键该任务 →「属性」→ 切到「操作」选项卡。你会看到当前运行的是类似 C:\Users\Administrator\.openclaw\gateway.cmd 的程序。选中它,点「编辑」。

4. 关键一步:用 PowerShell 静默脚本替代
原理:不直接跑 .cmd,而是通过 PowerShell 间接调用并隐藏控制台窗口。
先新建一个文本文件,保存为 start_openclaw_hidden.ps1,内容如下(把 YOUR_OPENCLAW_PATH 换成你 gateway.cmd 所在目录,比如
C:\Users\Administrator\.openclaw):
# start_openclaw_hidden.ps1# 隐藏窗口启动 OpenClaw 网关$workingDir="YOUR_OPENCLAW_PATH"# 例如:C:\Users\Administrator\.openclaw$scriptPath = Join-Path $workingDir "gateway.cmd"# 设置工作目录,避免路径问题导致启动失败Set-Location $workingDir# 用 Start-Process 启动并隐藏窗口Start-Process -FilePath "cmd.exe" `-ArgumentList "/c `"$scriptPath`"" `-WindowStyle Hidden `-WorkingDirectory $workingDir
然后回到任务属性的「编辑操作」窗口,这样填:
- 程序/脚本
: powershell.exe - 添加参数
: -ExecutionPolicy Bypass -File "C:\Users\Administrator\.openclaw\start_openclaw_hidden.ps1"(换成你脚本的实际路径) - 起始于
:填脚本或 gateway.cmd所在目录。这一项很重要,能解决大部分因路径导致的启动失败。

5. 调整条件与设置(建议)
- 触发器
:确认「登录时」或「启动时」的触发器是启用的。 - 条件
:取消勾选「只有在计算机使用交流电源时才启动此任务」,这样笔记本用电池也能启动。 - 设置
:勾选「如果过了计划开始时间,立即启动任务」和「如果任务失败,按以下频率重新启动」,重试次数设 3 次,增强可靠性。
6. 测试验证
-
改完右键任务点「运行」,此时应该不会弹出任何 CMD 窗口。 -
打开任务管理器,在「后台进程」里找 node.exe或cmd.exe,确认服务在跑。 -
重启电脑做最终验证。
故障排查与进阶提示
服务没启动? 按方案改完若服务不跑,先查这几处:
-
任务计划程序里的「上次运行结果」列。 -
事件查看器( eventvwr.msc)→「Windows 日志」→「应用程序」和「系统」,筛选 Node.js 或任务计划来源的报错。 -
确认 PowerShell 脚本路径、 gateway.cmd路径、「起始于」目录三者全部正确且一致。
端口被占用? OpenClaw 网关默认用特定端口(如 3000),启动失败时检查端口是否被别的程序占了。
环境变量问题? 确保任务运行环境的 PATH 包含 Node.js 路径。最稳妥的做法是在脚本里用 Node.js 的绝对路径来启动。
总结
- 想系统级彻底解决、不怕折腾
→ 改任务计划用 PowerShell 静默启动,一劳永逸。
夜雨聆风