14

我使用 Delphi 为客户端服务器应用程序创建了一个 Windows 服务。

要安装它,我使用

c:\Test\MyService.exe /install (or /uninstall)

这将安装服务并在 Windows 服务中列出“MyService”名称和空描述。

如何定义不同的名称并插入描述(运行时可见services.msc)?

注意:我需要这个,因为在同一台机器上我需要安装更多次相同的服务(每个数据库 1 个)。

目前我发现的唯一解决方法是重命名服务 exe,但我更愿意找到正确的命令行方式来执行此操作(因为我是从 执行此操作的ShellExecute)。

更新:不知何故我会寻找类似的东西(这当然只是为了解释原因!-InstallService.exe是我刚刚发明的名字):

InstallService.exe c:\Test\MyService.exe /install /name='MyService1' 
  /description='This is my service for database 1'

但也可以使用更紧凑的版本,例如:

c:\Test\MyService.exe /install /name='MyService1' 
  /description='This is my service for database 1'
4

1 回答 1

14

Windows 已经附带了您需要的实用程序,即sc create.

>sc 创建/?
描述:
        在注册表和服务数据库中创建服务条目。
用法:
        sc 创建 [服务名称] [binPath= ] ...

选项:
注意:选项名称包括等号。
      等号和值之间需要一个空格。
 类型=
       (默认 = 拥有)
 开始=
       (默认 = 需求)
 错误=
       (默认 = 正常)
 二进制路径=
 组=
 标签=
 依赖=
 对象=
       (默认 = 本地系统)
 显示名称=
 密码=

这将创建服务并允许您指定名称和显示名称。

要修改您需要的描述sc description

>sc 描述 /?
描述:
        设置服务的描述字符串。
用法:
        sc 描述 [服务名称] [描述]

另一个明显的选择是将命令行解析构建到您的服务中。这很容易做到。BeforeInstall只需为服务和/或事件分配处理程序AfterInstall并在那里处理开关。

于 2013-08-29T10:44:58.107 回答