Как установить службу Windows из командной строки с указанием имени и описания?

Я создал службу Windows с Delphi для клиентского сервера.

Чтобы установить его, я использую

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

Это устанавливает службу и в службах Windows, которые она перечисляет с именем "MyService" и пустым описанием.

Как определить другое имя и вставить описание (его можно увидеть при запуске services.msc)?

Примечание: Мне нужно это, потому что на той же машине мне нужно установить больше раз одну и ту же услугу (по 1 на базу данных).

В настоящее время единственным обходным решением я foudn является переименование службы 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'

Ответ 1

Windows уже поставляется с нужной утилитой, а именно sc create.

>sc create /?
DESCRIPTION:
        Creates a service entry in the registry and Service Database.
USAGE:
        sc  create [service name] [binPath= ]  ...

OPTIONS:
NOTE: The option name includes the equal sign.
      A space is required between the equal sign and the value.
 type= 
       (default = own)
 start= 
       (default = demand)
 error= 
       (default = normal)
 binPath= 
 group= 
 tag= 
 depend= 
 obj= 
       (default = LocalSystem)
 DisplayName= 
 password= 

Это создаст службу и позволит вам указать имя и отображаемое имя.

Чтобы изменить описание, которое вам нужно sc description:

>sc description /?
DESCRIPTION:
        Sets the description string for a service.
USAGE:
        sc  description [service name] [description]

Другим очевидным вариантом является создание синтаксического анализа командной строки в вашей службе. Это тривиально легко сделать. Просто назначьте обработчики для событий службы BeforeInstall и/или AfterInstall и обработайте там переключатели.