sc config命令不改变服务运行状态,而是永久修改其配置属性,尤其是启动类型(如auto、demand、disabled),需配合sc start/sc stop才能立即启停服务。
sc config 命令本身不直接改变服务的“运行状态”(比如启动或停止),而是永久修改服务的**配置属性**,尤其是启动类型。真正切换服务运行状态要用 sc start 或 sc stop。但配置好启动类型,是后续自动启停、系统重启后行为是否生效的关键前提。
明确服务名,不是显示名
在服务管理器(services.msc)里看到的“名称”列其实是“显示名”,而 sc 命令必须用真实的“服务名”。例如:
- 显示名为“Windows Update”的服务,服务名是 wuauserv
- 显示名为“Print Spooler”的服务,服务名是 Spooler
- 显示名为“Remote Registry”的服务,服务名是 RemoteRegistry
查服务名最稳妥的方式:在 services.msc 中右键目标服务 → “属性” → 查看“常规”选项卡顶部的“服务名称”;或用命令:
sc GetKeyName "显示名"(注意引号)
用 sc config 设置服务启动类型
这是最常用的操作,决定服务在开机时是否自动运行、能否手动启动等。核心参数是 start=,后面必须加一个空格再写值:
- start= auto:开机自动启动(登录前即运行)
- start= delayed-auto:延迟自动启动(等系统基础服务就绪后再启动,减少开机卡顿)
- start= demand:手动启动(默认值,需执行 sc start 服务名 才会运行)
- start= disabled:禁用(无法启动,即使运行 sc start 也会失败)
- start= system 或 start= boot:仅用于内核驱动,普通服务不用
示例:
sc config wuauserv start= disabled
sc config Spooler start= demand
配合 sc start / sc stop 立即控制服务运行
sc config 修改的是“策略”,要立刻生效,还需单独执行启停命令:
- 启动已配置为 demand 或 auto 的服务:sc start Spooler
- 停止正在运行的服务:sc stop wuauserv
- 注意:如果服务已被设为 disabled,sc start 会报错 1058,必须先用 sc config 改回 demand 或 auto 才能启动
验证配置和当前状态
改完别忘了确认是否成功:
- 查启动类型是否更新:sc qc 服务名(qc = query config,返回含 start_type 的完整配置)
- 查当前运行状态:sc query 服务名(STATE 行显示 RUNNING、STOPPED 等)
- 查更详细信息(含 PID、退出代码等):sc queryex 服务名
比如:sc qc dnscache 会清楚列出它的 start_type 是 2(对应 auto),binpath 是什么,依赖哪些服务等。










