在 Windows 系统中,可以使用命令行工具来管理服务。

生成/创建服务

  • 使用 sc 命令

    1
    2
    3
    4
    5
    6
    7
    8
    # 创建服务的基本语法
    sc create "服务名" binPath= "可执行文件路径" start= auto

    # 示例:创建名为 MyService 的服务
    sc create "MyService" binPath= "C:\Program Files\MyApp\myservice.exe" start= auto

    # 更多选项的示例
    sc create "MyService" binPath= "C:\MyApp\service.exe" start= auto DisplayName= "我的服务" depend= "TCPIP"

    参数说明:
    binPath= - 服务可执行文件的完整路径
    start= - 启动类型(auto: 自动, demand: 手动, disabled: 禁用)
    DisplayName= - 显示名称
    depend= - 依赖的服务
    注意: = 后面必须有一个空格!

  • 使用 net 命令(仅适用于已注册的服务)
    net start "服务名"
    net stop "服务名"

删除服务

使用 sc 命令删除服务

1
2
3
4
5
6
7
8
9
# 先停止服务(如果正在运行)
sc stop "服务名"

# 删除服务
sc delete "服务名"

# 示例
sc stop "MyService"
sc delete "MyService"

列出所有服务

  • 使用 sc 命令
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 列出所有服务
    sc query

    # 列出特定服务的详细信息
    sc query "服务名"

    # 列出所有运行中的服务
    sc query state= all

    # 列出所有停止的服务
    sc query state= inactive
  • 使用 net 命令
    1
    2
    # 列出所有服务
    net start
    注意:net start 通常只列出已启动的服务。

启动/停止服务

1
2
3
4
5
6
7
8
9
10
# 启动服务
sc start "服务名"
net start "服务名"

# 停止服务
sc stop "服务名"
net stop "服务名"

# 重启服务
sc stop "服务名" && sc start "服务名"

修改服务配置

1
2
3
4
5
6
7
8
# 修改启动类型
sc config "服务名" start= disabled

# 修改可执行路径
sc config "服务名" binPath= "新路径"

# 修改显示名称
sc config "服务名" DisplayName= "新名称"

注意事项

  • 需要管理员权限:创建、删除和修改服务都需要以管理员身份运行命令提示符。
  • 路径格式:可执行文件路径中的空格需要用引号括起来。
  • 服务依赖:删除服务前确保没有其他服务依赖它。
  • 谨慎操作:错误的服务操作可能影响系统稳定性。

实用示例

1
2
3
4
5
6
7
8
9
# 创建 MySQL 服务
sc create "MySQL" binPath= "\"C:\Program Files\MySQL\bin\mysqld.exe\" --defaults-file=\"C:\Program Files\MySQL\my.ini\" MySQL" start= auto DisplayName= "MySQL Server"

# 查看服务状态
sc query "MySQL"

# 删除 MySQL 服务
sc stop "MySQL"
sc delete "MySQL"

这些命令在 Windows 7/8/10/11 和 Windows Server 系统中都适用。


只用命令行进行操作还是比较麻烦。