sc命令是windows内置服务控制命令行工具,直接与scm通信,支持创建、启停、配置、删除等全生命周期管理;所有操作须以管理员身份运行,常用命令包括sc query/sc queryex查状态、sc qc查配置、sc config改启动类型、sc create注册服务等。
sc 命令是 windows 内置的服务控制命令行工具,直接与服务控制管理器(scm)通信,能完成创建、启停、配置、删除等全部基础操作。所有操作必须以管理员身份运行 cmd,否则会提示“拒绝访问”。
查服务状态和配置信息
快速确认服务是否存在、是否运行、启动类型是什么:
-
sc query 服务名 —— 查基本状态(如
sc query wuauserv),显示 STATE(RUNNING/STOPPED)、TYPE、WIN32_EXIT_CODE 等 - sc queryex 服务名 —— 多显示 PID 和 FLAGS,适合排查进程级问题
- sc qc 服务名 —— 查配置详情:binPath、start type、service type、depend 依赖项等
- sc qdescription 服务名 —— 查描述字段(如果已设置)
启停和控制服务
启动、停止、暂停、继续服务,注意 sc 是异步调用,不等待服务完全响应:
- sc start 服务名 —— 发送启动请求(不阻塞,返回后服务可能还在初始化)
- sc stop 服务名 —— 发送停止请求(同样不等待彻底退出)
- sc pause / sc continue 服务名 —— 仅对支持暂停/继续的服务有效(需程序本身实现)
- 日常脚本中更推荐
net start / net stop,因为它们会同步等待服务进入目标状态
修改服务启动方式和参数
永久更改服务注册表配置,重启后仍生效:
- sc config 服务名 start= auto —— 设为自动启动(开机即启)
- sc config 服务名 start= demand —— 改为手动启动
- sc config 服务名 start= disabled —— 禁用服务(无法启动)
- sc config 服务名 binPath= "D:\app\svc.exe --mode=service" —— 更新可执行路径及参数(引号必需,等号后必须空格)
- sc config 服务名 obj= "NT AUTHORITY\NetworkService" —— 更改运行账户
创建和删除自定义服务
把普通程序注册为 Windows 服务(前提是程序支持服务接口):
- sc create MySvc binPath= "C:\myapp\server.exe -service" start= auto DisplayName= "我的后台服务" —— 创建时指定显示名、启动类型、路径;等号后必须加空格,路径必须用双引号
- sc delete MySvc —— 彻底从注册表移除服务项(服务必须已停止)
- 创建后可用
sc start MySvc启动,或在 services.msc 中看到“显示名”











