使用WIX执行MSI包作为用户管理

时间:2016-02-09 08:15:11

标签: wix windows-installer msiexec

我使用Wix创建了MSI包。

Wix脚本:

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" />

<CustomAction Id="InstallDRV" Directory="INSTALLDIR" Execute="deferred" ExeCommand="[INSTALLDIR]setup.exe" Impersonate="no" Return="check" />

这个'setup.exe'将安装'Printer'驱动程序并设置为默认打印机。

因此,这将更新以下密钥中的默认打印机。 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows

但是,msiexec.exe在“系统管理员”而不是“用户管理员”中运行。

我们如何将MSI作为“用户管理员”帐户执行。

提前致谢。

此致

迪利普

1 个答案:

答案 0 :(得分:2)

每台计算机“Everyone”安装与系统帐户一起运行是正常的,这样它们就可以升级。此外,Windows Installer几乎不支持使用安装用户的凭据运行提升的自定义操作。人们解决此问题的方式主要是以不涉及自定义操作的其他方式执行此类“安装内安装”。但试试这个:

  1. 自定义操作需要是impersonate =“yes”,以便模拟安装用户。

  2. 通过从提升为管理员权限的exe开始提升整个MSI安装,然后启动MSI。