Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Внести изменение в реестре службой, для текущего пользователя. (http://forum.oszone.net/showthread.php?t=314331)

zombivadim 27-04-2016 23:34 2630250

Внести изменение в реестре службой, для текущего пользователя.
 
Создаю службу командой
Код:

Sc create MyService binPath= C:\Test.exe DisplayName= "NewService" type= own start= auto
, в исполняемом файле всего одна строчка, reg add ...., расчет был на то, что при каждом старте, будет перезапись реестра на случай его изменения. Однако это не срабатывает. Как мне объяснили, служба создает запись в реестр для пользователя localsystem, помогите пожалуйста.
Необходимо чтобы запись в реестре, произошла для текущего пользователя.

Foreigner 27-04-2016 23:44 2630255

zombivadim, А само приложение может работать в качестве сервиса? Оно для этого предназначено?
Если нет, то смотрите в сторону сервисных оболочек (NSSM, instsrv, srvany)

zombivadim 27-04-2016 23:55 2630257

Foreigner, Если вы про Test.exe, то это обычный BAT переконвертированный в .exe, с одной строчкой reg add ...

Foreigner 27-04-2016 23:59 2630259

zombivadim, Он самостоятельно не может быть запущен в качестве службы.

zombivadim 28-04-2016 00:06 2630261

Foreigner, Простите, если добавить в файл к примеру команду COPY %0 D:\, то все работает, а вот с реестром проблема.

Foreigner 28-04-2016 00:15 2630263

Работает в качестве службы?? Покажите скриншот:
Код:

sc query NewService
tasklist | findstr /i "test.exe"


zombivadim 28-04-2016 00:38 2630266

Вложений: 1
Foreigner,Не
Код:

sc query NewService
,а MyService , все работает, при перезагрузке файл создается COPY %0 D:\,

zombivadim 28-04-2016 00:39 2630267

Файл 136338

Foreigner, Даже пусть по вашему, вы мне подскажите как реализовать задуманное!

Foreigner 28-04-2016 01:05 2630270

zombivadim, Служба если запушена постоянно висит в процессах. Запускается либо автоматически, либо по требованию (событию или другим приложением), либо вручную. Не совсем понятна задача. Может вам проще положить батник в автозагрузку (Для 10-ки, в 7-ке не помню):
Код:

%AppData%\Microsoft\Windows\Start Menu\Programs\StartUp
Или в реестре:
Код:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run  -- для пользователя
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -- для всех пользователей


zombivadim 28-04-2016 10:31 2630310

Необходимо создать службу, с возможностью изменять запись в реестре для текущего пользователя. Для этого я и пришел на форум, а не сделал просто
Цитата:

Цитата Foreigner
проще положить батник в автозагрузку »


Foreigner 28-04-2016 12:22 2630344

zombivadim, Объясните, почему именно служба? Для чего вам в реальном времени выполнять код?

По поводу того, как создать службу из батника, ведь упаковщик батников в exe, это просто архив, который распаковывается в %temp% и от туда исполняется, так вот, насчет запуска в виде службы я написал выше, смотрите в сторону приложений, которые являются прослойкой между сервисами и исполняемым приложением

Foreigner:
Цитата:

смотрите в сторону сервисных оболочек (NSSM, instsrv, srvany)
Из википедии:
Цитата:

Приложение, имеющее статус службы, должно быть написано таким образом, чтобы оно могло принимать сообщения от SCM (Service Control Manager). Затем имя службы и её другие атрибуты, например, описание службы, регистрируются в диспетчере управления при помощи одного или нескольких вызовов API.


Время: 23:05.

Время: 23:05.
© OSzone.net 2001-