MSI是否能够自动启动具有提升权限的程序/文件?

时间:2011-05-31 17:10:59

标签: c++ windows-installer bho cmd regsvr32

我正在尝试使.msi文件可以打开一个可执行文件,该文件将注册一个浏览器帮助程序对象。由于这涉及写入注册表,因此必须使用管理privelages来提升cmd.exe。我能够操作ShellExecute()函数来弹出UAC对话框并询问用户是否想以管理员身份运行cmd,但是,我不想让用户对安装有任何控制权。很多在线研究让我得出结论,没有管理权限就不可能使用浏览器帮助对象,所以我的问题是:cmd.exe是否能够继承msi安装程序的权限,假设安装程序已在运行行政权利?无济于事,我还试图以管理员身份自动运行cmd。我感谢任何指导或帮助,非常感谢你!

2 个答案:

答案 0 :(得分:2)

您应该能够在大约100行WiX中不使用CMD来实现此目的,并且只需手动编写所需的注册表项,无需执行cmd.exe或regsvr32。请注意,自行注册(您正在尝试做的事情)是一种非常糟糕的做法,并导致安装混乱。

以下命令可以帮助您入门:

heat.exe file MyBHO.dll -o MyBHO.wxs -template product -ag -suid

答案 1 :(得分:0)

我的理解是,如果启用了UAC,则无法绕过它。如果它是一个利用,应该避免。