就我研究并询问其他人而言,似乎常规MSI在大多数时间内作为受限用户运行,尤其是在GUI阶段。
但是应用程序在安装阶段需要提升提示,我希望在GUI选择阶段执行的自定义操作期间拥有管理员权限。难道真的没有办法在开始时强制提出UAC提示吗?
此外,在Active Directory安装期间也需要执行一些自定义操作,如果MSI以guest身份或其他方式运行,也无法执行。
答案 0 :(得分:3)
即使在运行提升的安装程序时,自定义操作仍可能在Vista,Server 2008和Windows 7上失败。这是因为它们通过模仿提升过程的用户来运行。
需要完全权限且不使用每用户信息的自定义操作应标记为在不模拟的情况下运行。这样他们就可以在本地系统帐户下运行,没有任何限制。
答案 1 :(得分:2)
您可以从bootstrapper启动MSI,其中包含嵌入的相应清单。
答案 2 :(得分:2)
在一个条件下使用Privileged属性。
答案 3 :(得分:1)
在GUI阶段,它始终在非提升的用户上下文中运行。只有InstallExecuteSequence中的自定义操作在延迟执行模式下被提升。
要解决此问题,您应该重新设计MSI或使用在启动时请求提升的引导程序(setup.exe)