Запуск любого приложения в виде службы
Метки: Windows | администрирование Windows
Вторник, 22 ноября 2011 г.
Просмотров: 30914
Подписаться на комментарии по RSS
Полезная информация
Недавно наша компания начала плавный переход части своих задач в облако. В частности мы активно начали использовать концепцию saas от Salesforce.com, в чем нам очень сильно помогли консультанты компания CT Consulting. Проект был признан успешным и активно продолжается.
Если говорить о приложениях очень общими словами они бывают либо непосредственно работающие с пользователем в графическим интерфейсом, либо работают в фоне в виде служб. Иногда возникает необходимость запустить определенное приложение в виде службы, однако в приложении такой возможности не предусмотрено. Как сделать это мы и рассмотрим в данной статье. В качестве примера возьмем программу uTorrent.
Дополнительно требуемое ПО
Для того чтобы приложение, которое не предусмотрено для запуска в виде службы, работало в таком режиме нам необходимо использовать специальную обертку, которая будет управлять приложением и имитировать его работу в виде службы.
Для этого есть различные методы, однако одним из моих любимых является использование instsrv.exe и srvany.exe. Данные утилиты являются частью Windows 2003 resource kit, который можно скачать с сайта MS.
- Скачиваем и устанавливаем Resource Kit в директорию по умолчанию. c:\Program Files (x86)\Windows Resource Kits\Tools\
Подготавливаем аккаунт для службы
Одним из преимуществ запуска приложения в качестве службы является то, что вы можете указать аккаунт пользователя под которым служба будет запускаться.
Обычно служебные аккаунты никогда не используются для непосредственного входа на машины. Их необходимо создавать с параметрами, предотвращающими запрос на смену пароля.
- Создайте и залогиньтесь в систему под служебным аккаунтом.
- Запустите приложение и сделайте необходимые изменения – для uTorrent я включаю веб-интерфейс и устанавливаю корректные настройки портов подключения.
Создание службы
При выполнении необходимых действий мы выполняем 2 основных шага. В первом мы созадем запись в реестре для оболочки службы. Во втором мы настраиваем необходимые параметры оболочки.
- Откройте командную строку с правами администратора
- Введите следующую команду:
C:\>"c:\Program Files (x86)\Windows Resource Kits\Tools\instsrv.exe" uTorrent " c:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
- Вы должны получить сообщение "The service was successfully added!"
В данный момент вы уже создали службу, но ещё не указали что служба должна выполнять.
- Откройте редактор реестра
- Перейдите в HKLM\System\CurrentControlSet\Services\
- Найдите службу, которую вы создали(uTorrent)
- Создайте новую ветку с именем Parameters
- В ветке Parameters создайте ключ Application
- Укажите путь к исполняемому файлу без кавычек
В данный момент у нас уже есть необходимая служба, запускающая требуемое приложение. Далее нам необходимо её настроить.
Настройка службы
Далее нам необходимо выполнить настройку службы с помощью консоли управления службами или команды sc.exe
- Откройте консоль управления службами
- Найдите службу uTorrent
- На вкладке General укажите режим запуска автоматический
- На вкладке Log On tab укажите ранее созданный служебный аккаунт
Если это локальный аккаунт используйте синтаксис .\account если доменный, то domain\account
Тестирование
Для проверки что все работает перезагрузим компьютер. Залогинимся под другим пользователем и проверим следующее:
- Служба запущена
- Процесс работает под служебным аккаунтом
- Приложение работает так, как нами задумано
Интересное
Не всем по карману настоящие швейцарские часы, но козырнуть все таки хочется. Поэтому я решил, что куплю копию швейцарских часов и никому не скажу . Нашел отличный магазин с огромным выбором очень качественных копий. При чем нужно учитывать - что это не подделки, это на самом деле отличные часы, которые тоже стоят очень неплохо, поэтому если бюджет ограничен – это на самом деле отличный выбор.
Еще записи по теме
- Как зайти в безопасный режим на Windows 8?
- Ошибка “RPC Server is unavailable” при запросе сертификата
- Ошибка "Failed to find a valid network adapter" при загрузке WinPE
- Рекомендации для изменения схемы Active Directory
- Настройка автоматического интервала отправки и получения в Outlook
- Как управлять Microsoft Hyper-V из командной строки
- Добавляем элемент меню Exchange Management Shell в PowerShell ISE
Комментариев: 1
Есть приложение запускаю с параметром -console чтоб видеть онлайн лог, при попытках сделать приложение службой, приложение запускается но только если без параметра -console, и соответственно без консоли онлайн логов. А с параметром вообще не запускается, пишет что служба не ответила вовремя. Помогите.