В рамках этой задачи возникла идея организации службы, которая будет при старте системы, даже без логона пользователя запускать приложение. Первое, что пришло в голову - использование InstSrv.exe утилиты.
Вот так выглядит это решение: Инсталлируем сервис: instsrv XXX c:\windows\system32\srvany.exe Редактируем реестр HKLM\System\CCS\Services\XXX Создаем тут ветку Parameters
|
Вполне работоспособное решение. Положительным моментом данного решения можно считать то, что исполняемым в качестве сервиса файлом может быть не только командный файл, но и исполняемые файлы.
Второй вариант решения, который нам предоставляет Microsoft Resource Kit более подходит для моего варианта. Это использование сервиса AutoExNT. Этот сервис имеет узкоспециализированное значение запуска коммандного AutoExNT.bat файла.
Вариант этого решения выглядит следующим образом:
Второй вариант решения, который нам предоставляет Microsoft Resource Kit более подходит для моего варианта. Это использование сервиса AutoExNT. Этот сервис имеет узкоспециализированное значение запуска коммандного AutoExNT.bat файла.
Вариант этого решения выглядит следующим образом:
1. Для работы необходимо на целевую систему скопировать файлы в системную папку %SystemRoot%\System32\ Servmess.dll, Autoexnt.exe, InstExNT. 2. Создаем AutoExNT.bat, который должен исполнятся в качестве службы. В нем то и будет реализована вся необходимая нам функциональность. 3. Инсталируем сервис коммандой: instexnt install или instexnt install /interactive Отличие этих двух команд заключается в возможности пользователя взаимодействовать с сервисом (останавливать или запускать его).4. После этого сервису можно дать комментарий в оснастке services.msc и протестировать на запуск/остановку коммандами net start autoexnt net stop autoexnt |
Вуаля! Получаем контролируемый, выполняемый при загрузке сервиса код.
Комментариев нет:
Отправить комментарий