2016-05-13 4 views
0

Я создал летучую мышь для выполнения файла сценария (.vbs), чтобы получить список установленных программ из реестра Windows. Я следую 2 способам выполнения файла bat.Как создать службу с правами администратора из кода C++

1) выполнить файл bat из командной строки (cmd). 2) Создайте сервис для выполнения bat-файла. (Я создал процесс).

два выхода разные.

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

+0

Служба обычно работает под учетной записью LOCAL SYSTEM, которая может иметь другой набор приложений, установленных из учетной записи администратора. Кроме того, запрос к реестру - неправильный подход к системе для установленных приложений. – IInspectable

+0

Ваш проблемный диагноз неверен. Шаг 1, правильно диагностируйте проблему. Шаг 2, подумайте о возможных решениях. Перед тем, как продолжить, вам нужно сделать первый шаг. –

ответ

-1

Вам необходимо использовать функцию CreateService. Если вы используете nullptr в качестве аргумента для lpServiceStartName, тогда он будет работать как администратор.

+1

Из [CreateService] (https://msdn.microsoft.com/en-gb/library/windows/desktop/ms682450.aspx): * "lpServiceStartName: если этот параметр равен NULL, CreateService использует учетную запись [LocalSystem] (https : //msdn.microsoft.com/en-gb/library/windows/desktop/ms684190.aspx). * Это ** не ** учетная запись администратора. Я понятия не имею, почему кто-то мог бы отбросить фактически неверный ответ. – IInspectable

+0

@Inspectable, я не сказал учетной записи администратора. Он имеет права администратора. – Simple

+1

* «он будет работать как администратор» * - и это неверно. Он будет работать как ЛОКАЛЬНАЯ СИСТЕМА, как описано. Это среда, отличная от среды администратора. – IInspectable

Смежные вопросы