Сможет ли MSI автоматически запускать программы/файлы с повышенными правами?

Я пытаюсь сделать так, чтобы файл .msi мог открыть исполняемый файл, который зарегистрирует вспомогательный объект браузера. Поскольку это требует записи в реестр, cmd.exe должен быть повышен с правами администратора. Я могу манипулировать функцией ShellExecute(), чтобы вызвать всплывающее диалоговое окно UAC и спросить, хочет ли пользователь запустить cmd в качестве администратора, однако я не хотел бы давать пользователю какой-либо контроль над установкой. Многочисленные исследования в Интернете привели меня к выводу, что невозможно использовать вспомогательный объект браузера без прав администратора, поэтому мой вопрос: сможет ли cmd.exe наследовать разрешения установщика msi, предполагая, что установщик уже работает с административные права? Безрезультатно, я также пытался автоматически запускать cmd от имени администратора. Я ценю любое указание или помощь, большое спасибо!


person user515751    schedule 31.05.2011    source источник
comment
Почему вы пытаетесь сделать отдельный процесс, который записывает в реестр, вместо того, чтобы позволить MSI записывать необходимые изменения? MSI выполняется установщиком Windows, который уже должен быть повышен.   -  person Adrian McCarthy    schedule 01.06.2011


Ответы (2)


Я так понимаю, что если UAC включен, то его никак не обойти. Если есть, это эксплойт, и его следует избегать.

person rerun    schedule 31.05.2011
comment
Не будет ли MSI запрашивать повышенные разрешения? Если это так, вы можете подумать, что дополнительные подсказки будут излишними. - person JAB; 31.05.2011
comment
@JAB, я не мог убедиться, пока сам не проверил, спасибо! - person user515751; 15.06.2011

Вы должны быть в состоянии добиться этого без использования CMD примерно в 100 строках WiX и просто написать необходимые записи реестра вручную, нет необходимости выполнять cmd.exe или regsvr32. Обратите внимание, что самостоятельная регистрация (то, что вы пытаетесь сделать) является очень плохой практикой и приводит к беспорядочной установке.

Следующая команда должна помочь вам начать:

heat.exe file MyBHO.dll -o MyBHO.wxs -template product -ag -suid
person saschabeaumont    schedule 01.06.2011