Как установить службу 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
и обработайте там переключатели.