Запуск службы с параметрами
От: duncanmclaud  
Дата: 14.07.09 13:32
Оценка:
хочу запустить службу с параметрами, к примеру можно написать в консоли —

msiexec /i C:\Share_install\VyChat21.msi /qn

или как я думал на С++ можно вот так

LPCWSTR* pTemp = new LPCWSTR[2];
pTemp[0] = L"/i C:\Share_install\VyChat21.msi";
pTemp[1] = L"/qn";

StartService(hService, 2,pTemp)

в общем мне нужно средствами SCM запустить установку msi пакета, то есть я подключаюсь к удаленной машине
OpenSCManager()
и там хочу открыть службу установки WindowsInstaller с параметрами, то есть указать от куда установить msi пакет.

к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,
если кто сталкивался, или знает как решить проблему, подскажите.

спасибо за ответ.

14.07.09 17:56: Перенесено модератором из 'C/C++' — Кодт
Re: Запуск службы с параметрами
От: duncanmclaud  
Дата: 14.07.09 13:34
Оценка:
в MSDN написано что первый параметр это имя службы

LPCWSTR* pTemp = new LPCWSTR[3];
pTemp[0] = L"MSIServer";
pTemp[1] = L"/i C:\\Share_install\\VyChat21.msi";
pTemp[2] = L"/qn";

StartService(hService, 3,pTemp)


все равно не работает, служба запускается, параметры игнорируются
Re: Запуск службы с параметрами
От: fuyant  
Дата: 14.07.09 13:52
Оценка:
Здравствуйте, duncanmclaud, Вы писали:

D>хочу запустить службу с параметрами, к примеру можно написать в консоли -


D>msiexec /i C:\Share_install\VyChat21.msi /qn


D>или как я думал на С++ можно вот так


D>LPCWSTR* pTemp = new LPCWSTR[2];

D>pTemp[0] = L"/i C:\Share_install\VyChat21.msi";
D>pTemp[1] = L"/qn";

D>StartService(hService, 2,pTemp)


D>в общем мне нужно средствами SCM запустить установку msi пакета, то есть я подключаюсь к удаленной машине

D>OpenSCManager()
D>и там хочу открыть службу установки WindowsInstaller с параметрами, то есть указать от куда установить msi пакет.

D>к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,

D>если кто сталкивался, или знает как решить проблему, подскажите.

D>спасибо за ответ.


MsiInstallProduct
Re[2]: Запуск службы с параметрами
От: duncanmclaud  
Дата: 14.07.09 14:03
Оценка:
Здравствуйте, fuyant, Вы писали:

F>Здравствуйте, duncanmclaud, Вы писали:


D>>хочу запустить службу с параметрами, к примеру можно написать в консоли -


D>>msiexec /i C:\Share_install\VyChat21.msi /qn


D>>или как я думал на С++ можно вот так


D>>LPCWSTR* pTemp = new LPCWSTR[2];

D>>pTemp[0] = L"/i C:\Share_install\VyChat21.msi";
D>>pTemp[1] = L"/qn";

D>>StartService(hService, 2,pTemp)


D>>в общем мне нужно средствами SCM запустить установку msi пакета, то есть я подключаюсь к удаленной машине

D>>OpenSCManager()
D>>и там хочу открыть службу установки WindowsInstaller с параметрами, то есть указать от куда установить msi пакет.

D>>к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,

D>>если кто сталкивался, или знает как решить проблему, подскажите.

D>>спасибо за ответ.


F>MsiInstallProduct



так это на локальной машине, а как на удаленной? для этого специально подключаюсь к SCM серверу на удаленной машине, осталось разобраться как запустить службу инсталлера с параметрами.
Re[3]: Запуск службы с параметрами
От: ononim  
Дата: 14.07.09 14:15
Оценка:
D>>>msiexec /i C:\Share_install\VyChat21.msi /qn
.. — это не есть запуск службы с параметрами. Это запускает просто процесс msiexec с указанными параметрами, этот процесс просто стартует службу MSIServer (тот же msiexec) с обычными параметрами (на самом деле он создает COM объект, реализующий недокументированный IMsiServer интерфейс) и потом скармливает переданные параметры сервису через IPC (через методы полученного out-of-process COM stub'а)
Как много веселых ребят, и все делают велосипед...
Re[3]: Запуск службы с параметрами
От: fuyant  
Дата: 14.07.09 14:16
Оценка:
D>так это на локальной машине, а как на удаленной? для этого специально подключаюсь к SCM серверу на удаленной машине, осталось разобраться как запустить службу инсталлера с параметрами.

извините, не вчитался толком
тогда так
Вот, к примеру: Installing Software on a Remote Computer
Re[4]: Запуск службы с параметрами
От: duncanmclaud  
Дата: 14.07.09 15:39
Оценка:
Здравствуйте, fuyant, Вы писали:

D>>так это на локальной машине, а как на удаленной? для этого специально подключаюсь к SCM серверу на удаленной машине, осталось разобраться как запустить службу инсталлера с параметрами.


F>извините, не вчитался толком

F>тогда так
F>Вот, к примеру: Installing Software on a Remote Computer

да так я сделал, почти так...
там один трабл был если запускать с компа А, установить на комп Б, а инсталятор на компе В, то с правами проблема, я просто на компе Б искал расшаренную папку, копировал туда msi пакет, и устанавливал, но стоит задача не только средствами WMI сделать, а и средствами SCM, то есть если WMI сервис выключен, то тогда делать другим методом, в данном случае с помощью служб, стартовать, останавливать удаленно службы умею, не могу параметр передать, если конечно можно, хотя в StartService есть параметр, но как его правильно передать чтобы служба его не игнорировала не знаю,
если запустить Администрирование — Службы
потом выбрать службу Windows Installer то в свойствах есть edit — Параметры запуска, так вот как хотя бы туда передать, даже просто руками написать в этите том правильные параметры, и нажать старт службы чтобы к примеру с диска С:\install\1.msi запустился на установку пакет. Если там пишешь параметры как в командной строке то служба стартует но ничего не запускает.
Re: Запуск службы с параметрами
От: Аноним  
Дата: 15.07.09 12:37
Оценка:
Здравствуйте, duncanmclaud, Вы писали:

D>хочу запустить службу с параметрами


psexec ? Жаль сорцов не отдают
Re: Запуск службы с параметрами
От: Pzz Россия https://github.com/alexpevzner
Дата: 16.07.09 16:10
Оценка:
Здравствуйте, duncanmclaud, Вы писали:

D>к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,

D>если кто сталкивался, или знает как решить проблему, подскажите.

Там есть два места, куда можно прописать параметры: одно, это командная строка в реестре, другое — третий аргумент функции StartService(). И передаются они сервису по-разному. Соответственно, надо смотреть, откуда ваш сервис умеет из забирать, и через это место и передавать.
Re[2]: Запуск службы с параметрами
От: Аноним  
Дата: 17.07.09 08:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, duncanmclaud, Вы писали:


D>>хочу запустить службу с параметрами


А>psexec ? Жаль сорцов не отдают


Там довольно просто — на удалённую машину копируется исполняемый файл службы (он там в ресурсах лежит), инсталлируется и запускается. Далее связываются со службой по именованному каналу, если правильно помню, и дают ей команду на запуск нужного экзешника.
Re: Запуск службы с параметрами
От: Аноним  
Дата: 17.07.09 08:29
Оценка:
Здравствуйте, duncanmclaud, Вы писали:

D>хочу запустить службу с параметрами, к примеру можно написать в консоли -


D>msiexec /i C:\Share_install\VyChat21.msi /qn


D>или как я думал на С++ можно вот так


D>LPCWSTR* pTemp = new LPCWSTR[2];

D>pTemp[0] = L"/i C:\Share_install\VyChat21.msi";
D>pTemp[1] = L"/qn";

D>StartService(hService, 2,pTemp)


D>в общем мне нужно средствами SCM запустить установку msi пакета, то есть я подключаюсь к удаленной машине

D>OpenSCManager()
D>и там хочу открыть службу установки WindowsInstaller с параметрами, то есть указать от куда установить msi пакет.

D>к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,

D>если кто сталкивался, или знает как решить проблему, подскажите.

D>спасибо за ответ.


А на локальной машине получаете параметры? Если нет, покажите код, которым пытаетесь их получить в службе. И ещё, Вы точно уникодную версию StartService вызываете?
Re[2]: Запуск службы с параметрами
От: duncanmclaud  
Дата: 21.07.09 10:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, duncanmclaud, Вы писали:


D>>хочу запустить службу с параметрами, к примеру можно написать в консоли -


D>>msiexec /i C:\Share_install\VyChat21.msi /qn


D>>или как я думал на С++ можно вот так


D>>LPCWSTR* pTemp = new LPCWSTR[2];

D>>pTemp[0] = L"/i C:\Share_install\VyChat21.msi";
D>>pTemp[1] = L"/qn";

D>>StartService(hService, 2,pTemp)


D>>в общем мне нужно средствами SCM запустить установку msi пакета, то есть я подключаюсь к удаленной машине

D>>OpenSCManager()
D>>и там хочу открыть службу установки WindowsInstaller с параметрами, то есть указать от куда установить msi пакет.

D>>к компу подключаюсь, но как запустить службу с параметрами установки не знаю, ничего не могу найти,

D>>если кто сталкивался, или знает как решить проблему, подскажите.

D>>спасибо за ответ.


А>А на локальной машине получаете параметры? Если нет, покажите код, которым пытаетесь их получить в службе. И ещё, Вы точно уникодную версию StartService вызываете?


в смысле? я написал тестовую службу, и когда таким образом ей передаю параметры, то служба их получает.
Re[3]: Запуск службы с параметрами
От: Аноним  
Дата: 22.07.09 01:48
Оценка:
Здравствуйте, duncanmclaud, Вы писали:

D>в смысле? я написал тестовую службу, и когда таким образом ей передаю параметры, то служба их получает.


То есть у Вас проблема, когда Вы таким образом пытаетесь управлять "чужой" службой? Но ведь тогда ответ очевиден, разве нет? Эта служба просто игнорирует переданные ей параметры, и изменить это Вы не сможете.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.