Рубрики
Windows Настройка Софт

Запуск программы как службы Windows

Для выполнения этой операции нам понадобятся две утилиты: srvany.exe и instsrv.exe, входящие в состав Windows Server 2003 Resource Kit Tools.

Скачиваем и устанавливаем Windows Server 2003 Resource Kit Tools.
При установке под Windows 7 может появиться предупреждение о несовместимости – игнорируем его.

Предположим, что в качестве службы нам нужно запустить некий исполняемый файл – program.exe, расположенный в C:\Program Files\Program.

Из директории установки Resource Kit Tools (обычно C:\Program Files\Windows Resource Kits\Tools) копируем srvany.exe и instsrv.exe в папку где расположен наш program.exe (C:\Program Files\Program).
В этой же папке создаем текстовый файл program.reg со следующим содержанием:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProgramService\Parameters]
"Application"="c:\\Program Files\\Program\\program.exe"
"AppDirectory"="c:\\Program Files\\Program\\"

Обратите внимание на двойной слэш в путях – это не опечатка, так должно быть. ProgramService – это имя службы. Вы можете выбрать любое, главное, чтобы оно не совпадало с уже существующими.

Теперь открываем командную строку. В Vista и Windows 7 командная строка должна быть обязательно запущена от имени администратора (правый клик на ярлыке командной строки, выбрать пункт “Запуск от имени администратора”). В командной строке выполняем:

c:
cd \
cd "program files\program"
instsrv ProgramService "c:\program files\program\srvany.exe"

В результате вы должны получить ответ: The service was successfuly added (служба успешно добавлена). Если же вы получили сообщение: You are not authorized to do this – please contact your system administrator – скорее всего, командная строка запущена как обычно, а не от имени администратора.

Далее двойной щелчок по ранее созданному файлу program.reg, запрос на внесение изменений в реестр подтверждаем.

На этом все. Осталось перезагрузиться и проверить работоспособность службы.

Удаление службы.

Вариант 1. Остановить службу, затем вручную удалить ключи реестра и файлы.

Вариант 2. Остановить службу, в командной строке выполнить:

c:
cd \
cd "program files\program"
instsrv ProgramService remove

Это не универсальный вариант, он работает только со службами установленными с помощью instsrv.

4 ответа к “Запуск программы как службы Windows”

спасибо большое за статью по удалению служб! очень познавательно. не ожидал так быстро увидеть ))
однажды была ситуация на чужом нетбуке под хп сп3. заглючил нод32, снес его, начал ставить последнюю версию, а она не устанавливается… почистил вручную весь Ц от остатков нода, прошелся по реестру с поиском. в итоге получилось что все вроде и удалил а 2 службы так и висели мешая установке. ну там еще и винда была сильно запорота, так что проблему решил переустановкой на W7 :)

Max Bond: а удалять потом как? просто почистить папку и ветку реестра предварительно остановив службу? не могли бы вы поподробнее осветить вопрос удаления служб в своем блоге?
ЗЫ. спасибо за столь интересные и познавательные записи! давно с удовольствием читаю ваш блог :)

Салют постоянным читателям! )

Да, службу можно удалить вручную, как вы написали. Плюс, для служб установленных с помощью instsrv можно использовать такой синтаксис:
instsrv ServiceName remove (добавил в статью).
Более универсальный вариант с использованием утилиты sc описан здесь

ЗЫ. Если есть еще какие-нибудь пожелания по поводу новых статей с удовольствием приму к рассмотрению )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *