WIX Burn Bootstrapper not asking for admin rights for my MSI

流过昼夜 提交于 2019-12-22 02:41:03

问题


I created an MSI with WIX that needs elevated permissions to work correctly. In the MSI Project, I specified this via

<Package [...] InstallPrivileges="elevated" />

Now I included this MSI in a custom bootsrapper project, based on WixWPF Bootstrapper. As I understand it, the bootstrapper itself should not alter the machine state and thus should not require elevated privileges.

I would now expect the Bootstrapper to automatically launch the integrated MSI with elevated priviliges, prompting the user with a UAC dialog, if necessary. But it does not. Instead, the installation just fails. It works however, when I run the bootstrapper executable explicitly as administrator.

How do I make the bootstrapper ask for elevated permissions when installing the MSI?


回答1:


Since the INSTALLSCOPE attribute for the MSI was not set, it defaulted to Per-User install and the bootstrapper application considered that it does not need any ADMIN/Elevated rights to run it.

Now in your case, you are the author of the MSI and it was easy enough for you to add the InstallScope to the package element.

InstallScope="perMachine" 

If you are not the author of the MSI, still bootstrapper provides a property which you can use to force the per-machine for the MSI/EXE.

  1. MSIPackage - ForcePerMachine
  2. EXEPackage - PerMachine

So why does Bootstrapper think that Per-Machine install needs elevated privileges and Per-User doesnt? Simple enough, per-user installation the registry value is written under HKEY_CURRENT_USER and for Per-machine installation the registry value is written under HKEY_LOCAL_MACHINE. Only Admin users can read/write to HKLM.



来源:https://stackoverflow.com/questions/26613030/wix-burn-bootstrapper-not-asking-for-admin-rights-for-my-msi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!