【问题标题】:Install MSI as another User (Wix Toolset)以其他用户身份安装 MSI(Wix 工具集)
【发布时间】:2019-09-18 08:29:22
【问题描述】:
我的 MSI 设置具有个性化 UI 和自定义操作正常工作。它将部署在特定的计算机园区,始终具有相同的帐户设计:
- 具有经典权限的操作员帐户。
- 具有管理员权限的设置帐户。
我们希望能够在这两个帐户上启动我们的 MSI,但是当从操作员处执行此操作时,必须填写一份表格,要求提供设置凭据并安装所有内容,因为它是由设置用户记录的。
是否有适用于此的 Windows/MSI 工具?
我可以通过在 UI 显示之前启动的特定自定义操作来做到这一点吗?
感谢您的帮助
【问题讨论】:
标签:
wix
windows-installer
impersonation
【解决方案1】:
当您将 MSI 部署到具有标准权限的用户时,这将始终要求您提供管理员凭据以安装 MSI(假设 MSI 是按计算机安装而不是按用户安装)。
如果您通过 SCCM 或其他基础架构管理工具部署您的软件,您可以将其置于管理员上下文中运行,因此,您无需管理员权限即可安装它。
此外,当您测试 MSI 时,最好使用 PSexec 对其进行测试。什么是 Psexec?检查它here。
PsExec 是来自 Microsoft 的便携式工具,可让您使用任何用户的凭据远程运行进程。如果您运行 psexec -s -i(在具有管理员权限的 cmd 中),这将模拟系统帐户,从而允许您安装应用程序而无需您提供管理权限(密码等)。
当您测试 MSI 时,PSexec 是必须的。例如,如果您的 MSI 中有任何用户数据。因为,当您从另一个帐户安装 MSI 时,并非所有数据都会自动放置在其他用户身上,为此您必须使用 ActiveSetup 或其他解决方案才能使其对所有用户可用。查看有关 userdata here 和任何其他 MSI 主题的更多信息。
如果您从管理员帐户安装 MSI 并希望对当前登录的用户运行不同的操作,我为此设计了一个工具,可以下载 here。
因此,要更直接地回答您的问题,您不能以普通用户的身份隐藏凭据对话框。 MSI 必须从一些基础设施管理工具(如 SCCM)部署,或者另一种解决方案(我不推荐)将 MSI 设计为per-user installation。