sc create是Windows 11中唯一原生命令行服务注册方式,需以管理员权限执行,严格遵循binPath加引号、等号前后空格等语法;若exe非真正服务程序,则启动失败并报错1053。

在 Windows 11 中通过命令行精确控制服务注册过程,需要绕过图形化工具直接调用系统底层接口,sc create 是唯一原生、无需第三方依赖的注册方式。
准备服务可执行文件与权限前提
确保你要注册的服务程序(如 myservice.exe)已存在于磁盘上,且路径不含中文、空格或特殊符号——否则后续启动必然失败。若路径含空格(例如 C:\My Tools\svc.exe),必须用双引号包裹整个路径,但 sc 命令本身不接受带空格的 binPath 参数写法,这是硬性限制。
以管理员身份打开 PowerShell 或 CMD:右键「开始」→「Windows Terminal(管理员)」或搜索「cmd」→ 右键「以管理员身份运行」。【未以管理员权限运行会导致“拒绝访问”错误,且服务条目虽可能创建成功,但无法启动】
执行 sc create 基础注册
输入以下命令(将示例中的路径、名称、描述全部替换为你的真实值):
sc create MyBackupService binPath= "C:\tools\backupd.exe" start= auto DisplayName= "My Daily Backup Service" depend= "Tcpip/EventLog"
注意:等号=前后**必须有空格**,这是 sc 命令的语法铁律;binPath 值必须用英文双引号包裹;start 值可选 auto(开机自启)、demand(手动启动)、disabled(禁用);depend 后填写依赖服务名,多个用斜杠/分隔,如不确定可暂不填。
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
执行后若返回 [SC] CreateService SUCCESS,说明注册完成;若报错,请立即检查 binPath 路径是否存在、是否拼写错误、是否有隐藏字符。
配置服务登录账户(可选但关键)
默认服务以 LocalSystem 账户运行,无网络访问权限且无法读写用户目录。若你的服务需访问网络共享、数据库或用户文档,必须指定其他账户:
方法一:使用当前登录用户(最简)sc config MyBackupService obj= ".\%username%" password= "your_password"
⚠️ 密码明文传输,仅限测试环境;生产环境务必改用专用服务账户。
方法二:使用内置 NetworkService(推荐用于需基础网络能力场景)sc config MyBackupService obj= "NT AUTHORITY\NetworkService"
【修改登录账户后必须重启服务才能生效,仅 sc config 不会自动应用】
验证并启动服务
第一步:确认服务已注册sc query MyBackupService → 查看 STATE 是否为 STOPPED,而非 NOT_FOUND。
第二步:设置启动类型(如之前未在 create 时指定)sc config MyBackupService start= auto
第三步:立即启动服务sc start MyBackupService
若返回 STATUS: 1053,代表服务进程启动后立刻退出——说明你的可执行文件不是真正的 Windows 服务程序(即未实现 ServiceMain 和 HandlerEx 回调),此时必须改用 nssm 等封装工具。
第四步:查看实时日志(关键排障步骤)
打开事件查看器 → Windows 日志 → 应用程序,筛选来源为 Service Control Manager,错误事件中会明确提示“服务未响应控制功能”或“访问被拒绝”等具体原因。

















