Windows 的 sc.exe(Service Control)是一个功能非常强大的命令行工具,用于创建、查询、修改、启动、停止和删除 Windows 服务。它是系统管理员和服务开发者的必备工具。
sc.exe
以下是对 sc 命令的详细介绍,涵盖常用命令、参数和实例。
sc
sc [servername] command [servicename] [options]
\\MyServer
query
start
stop
create
config
wuauserv
查询服务的状态和配置。
sc query
sc query wuauserv
sc qc [servicename]
sc qc wuauserv
sc queryex
sc queryex wuauserv
sc query state= all
sc query state= inactive
sc query state= active
sc query type= service type= interact
sc query type= driver
sc start [servicename]
sc start wuauserv
sc stop [servicename]
sc stop wuauserv
sc pause [servicename]
sc continue [servicename]
sc failure [servicename]
sc failure wuauserv reset= 86400 actions= restart/5000/restart/5000/restart/5000 sc failure wuauserv command= "C:\fix_service.cmd"
delete
sc create [servicename] [options]: 创建新服务。
sc create [servicename] [options]
binPath=
DisplayName=
start=
auto
demand
disabled
delayed-auto
depend=
/
obj=
LocalSystem
NT AUTHORITY\LocalService
password=
sc create MyService binPath= "C:\MyApp\mysvc.exe" DisplayName= "我的服务" start= demand
sc config [servicename] [options]: 修改现有服务的配置。参数与 create 类似。
sc config [servicename] [options]
sc config wuauserv start= auto
sc config MyService binPath= "C:\MyApp\new_mysvc.exe"
sc config MyService obj= "MyDomain\MyUser" password= "MyPass123"
sc delete [servicename]: 删除服务(需要先停止服务)。
sc delete [servicename]
sc delete MyService
sc description [servicename] [description]
sc description wuauserv "提供 Windows 系统和软件更新服务"
sc sdshow [servicename]
sc sdshow wuauserv
sc sdset [servicename] [SDDL字符串]
sc querylock
SCM(服务控制管理器)
sc [command] [servername]
sc \\Server01 query
sc \\Server01 start wuauserv
在图形界面(services.msc)中,服务的“名称”列就是 sc 命令中使用的服务名称。或者:
services.msc
wmic service get name,displayname
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
&&
sc stop MyService && sc delete MyService
findstr
sc query | findstr /i "RUNNING" sc query | findstr /i "STOPPED"
set SVC_NAME=wuauserv sc query %SVC_NAME%
option=
binPath= "C:\Path with spaces\app.exe"
binPath="C:\Path with spaces\app.exe"
Winmgmt
Eventlog
net
net start 和 net stop 也能控制服务,但它们更简单,且使用服务的显示名称。
net start
net stop
net start "Windows Update"
net stop "Windows Update"
区别:sc 功能更全面、更底层,适用于所有服务和自动化脚本;net 适用于简单的交互式操作。
总结:sc.exe 是一个强大的命令行服务管理工具。掌握了 query、qc、start、stop、config、create 和 failure 这几个核心命令,你就可以高效地通过命令行或脚本管理任何 Windows 计算机上的服务了。在编写自动化部署或维护脚本时,它是不可或缺的工具。
qc
failure