核心命令:sc
在 Windows 中,管理服务的核心命令是 sc (Service Control),它是一个功能强大的命令行工具,可以用来创建、删除、查询、配置和控制服务。

另一个常用的命令是 net start,它更简单,但功能不如 sc 全面。
查看所有服务(常用)
在启动服务之前,你通常需要知道服务名称是什么,服务名称通常是简短的英文,与你在“服务”管理界面中看到的服务显示名不同。
命令:
sc query state= all
或者更简洁的:

sc query
输出示例:
你会看到一个长长的列表,每个服务的信息都包含一个 SERVICE_NAME(服务名称)和一个 DISPLAY_NAME(显示名)。
SERVICE_NAME: Themes
DISPLAY_NAME: Themes
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
...
在这个例子中,服务名称是 Themes,显示名是 "Themes"。
启动服务(核心操作)
使用 sc 命令启动服务。
基本语法:

sc start <服务名称>
示例:
假设我们要启动 Windows Themes 服务(服务名称为 Themes):
sc start Themes
成功执行后,你会看到:
[SC] StartService SUCCESS
停止服务
与启动相对应,你也可以停止一个正在运行的服务。
基本语法:
sc stop <服务名称>
示例: 停止 Themes 服务:
sc stop Themes
成功执行后,你会看到:
[SC] StopService SUCCESS
常用命令总结表
| 功能 | sc 命令 |
net 命令 |
说明 |
|---|---|---|---|
| 查询所有服务 | sc query |
net start |
sc query 信息更全,net start 只显示已启动的服务。 |
| 启动服务 | sc start <服务名> |
net start <服务名> |
核心启动命令。 |
| 停止服务 | sc stop <服务名> |
net stop <服务名> |
停止运行中的服务。 |
| 查询特定服务状态 | sc query <服务名> |
- | 查看某个服务的详细信息,如状态、进程ID等。 |
| 重启服务 | (需两步) | - | 通常需要先 stop 再 start。 |
| 设置服务为自动启动 | sc config <服务名> start= auto |
- | 在系统启动时自动运行该服务。 |
| 设置服务为手动启动 | sc config <服务名> start= demand |
- | 只在需要时手动或由其他程序启动。 |
| 设置服务为禁用 | sc config <服务名> start= disabled |
- | 禁用服务,防止其启动。 |
进阶操作:设置服务启动类型
启动服务后,它下次重启电脑时可能又停止了,这是因为它的“启动类型”被设置为“手动”,你可以将其更改为“自动”,这样它就会在系统启动时自动运行。
命令语法:
sc config <服务名称> start= <启动类型>
启动类型参数:
auto: 自动启动(延迟启动,系统启动后一段时间再启动,不影响系统启动速度)。demand: 手动启动(默认值)。disabled: 禁用(服务无法被启动)。boot: 由系统加载器启动(仅用于驱动程序)。system: 由内核初始化器启动(仅用于驱动程序)。
示例:
将 Windows Update 服务(wuauserv)设置为自动启动:
sc config wuauserv start= auto
执行成功后会返回 [SC] ChangeServiceConfig SUCCESS。
实战演练:启动 IIS World Wide Web Publishing 服务
假设你的电脑上安装了 IIS,但网站服务没有启动,你想通过 CMD 启用它。
-
找到服务的准确名称。 在 CMD 中运行:
sc query
在列表中查找与 IIS 或网站相关的服务,你会发现它的名称是
W3SVC。 -
检查当前状态。
sc query W3SVC
你可能会看到
STATE : 1 STOPPED。 -
启动服务。
sc start W3SVC
看到
StartService SUCCESS后,服务就已经启动了。 -
(可选)将其设置为开机自启。
sc config W3SVC start= auto
重要注意事项
-
管理员权限:修改服务配置(如启动类型)和启动/停止某些关键系统服务,必须以管理员身份运行 CMD,否则会提示“拒绝访问”。
- 如何以管理员身份运行 CMD:在开始菜单搜索 "cmd",然后右键点击“命令提示符”,选择“以管理员身份运行”。
-
服务名称 vs. 显示名:
sc命令使用的是服务名称(通常是英文、无空格),而不是你在服务管理工具(services.msc)中看到的显示名,一定要先查询确认服务名称。 -
服务依赖:有些服务依赖于其他服务,如果你尝试启动一个服务,但它提示失败,请检查它依赖的服务是否已经启动,你可以通过
sc query <服务名>的输出中的DEPENDENCIES一行来查看。 -
替代工具:PowerShell:在现代 Windows 系统中,PowerShell 提供了更现代、更强大的
Get-Service和Start-Service等命令,但sc命令因其简洁和广泛兼容性,仍然是 CMD 下的首选。
希望这份详细的指南能帮助你!
