sc create 是什么
sc 是 Windows 服务控制管理器(SCM)的命令行接口,create 子命令把可执行程序注册成系统服务,delete 移除服务记录。注册后的服务由 SCM 托管,能用 start/stop 控制、能配置自动启动与故障恢复,比丢一个 exe 到启动文件夹规范得多。适合把自研代理、采集程序、常驻脚本变成可管理的服务。
基本信息
| 适用平台 | Windows 全版本;需管理员权限的命令行 |
|---|---|
| 创建语法 | sc create <名称> binPath= <完整路径> start= auto|demand|disabled |
| 关键规则 | 每个等号后必须紧跟一个空格,这是 sc 的参数约定 |
| 删除语法 | sc delete <名称>(先停止再删) |
| 配套命令 | sc description 写说明、sc qc 查配置、sc failure 配故障恢复 |
| PowerShell 等价 | New-Service、Remove-Service、Set-Service |
典型使用场景
- 把自研采集代理注册为服务,实现开机自启与崩溃后自动重启
- 部署需要常驻的第三方组件(如监控 agent、日志转发器)
- 清理测试环境留下的服务残留,避免占用端口或反复弹错
- 临时把一个可执行程序挂成服务验证启动参数是否正确
- 统一修改服务描述与启动类型,让资产清单可读
常用示例
常用示例
sc create MyAgent binPath= "C:\apps\agent\agent.exe --svc" start= auto # 等号后必须有空格
sc description MyAgent "示例代理服务" # 加说明便于资产管理
sc start MyAgent # 立即启动验证
sc qc MyAgent # 查看配置,删除前留档
sc config MyAgent start= demand # 改为手动启动
sc stop MyAgent && sc delete MyAgent # 停用后删除关键参数读法
| 参数 | 含义 | 常见取值 |
|---|---|---|
| binPath= | 服务启动的完整命令行 | 路径含空格要整段加引号 |
| start= | 启动类型 | auto 自动、demand 手动、disabled 禁用 |
| obj= | 运行账户 | 默认 LocalSystem;域账户写 域\用户 并配密码 |
| depend= | 依赖服务 | 写成 服务名/服务名 可控制启动顺序 |
| start 返回码 | 启动结果 | 1053 表示服务未及时响应,多为参数或权限问题 |
sc create 只做注册,不校验程序是否真能作为服务运行:普通控制台程序注册后启动会报 1053。程序需要实现服务控制处理逻辑,或用 nssm、winsw 这类包装器。
服务默认以 LocalSystem 运行,权限等于本机最高级别;能用专用低权限账户就不要留 LocalSystem,并为该账户单独授最小权限。