1

我有一个使用 InstallShield 创建的 .msi,我试图在 Windows Vista 和 7 的每个用户安装中正常工作。

我正在使用 virtuabox 虚拟化 Vista 和 7,每个有 3 个帐户:

-Admin1(默认帐户)

-管理员2

-用户1

无论我签署什么帐户,它总是为 Admin1 安装软件,而 .msi 总是让我在 Permachine 和 peruser 之间进行选择。

我可以将我想要的值(通过 InstallShield)提供给 Allusers 参数,它不会影响 Vista 和 Seven 上的行为。

我拼命地尝试使用 Orca/windows 安装程序日志/Winlogutl.exe 我不知道使用这些工具寻找什么。

所以我的问题是:我的 .msi 在 Windows Vista 和 7 上的行为怎么会如此奇怪?我可以寻找什么来解决问题?

4

1 回答 1

0

属性的行为,ALLUSERS在 UAC 时代之前偶尔用于提供“为所有用户或仅我”选项,没有很好地构思并且效果不佳,尤其是在后 UAC 时代。在 Windows Vista 上,您只能为 .msi 包上的设置选择一个值,该值是否提升;ALLUSERS不会改变这一点。由于它总是(或从不)提升,因此您实际上只能处理这两种情况之一。

Windows 7 和 Windows Installer 5 引入了MSIINSTALLPERUSER可以覆盖导致包提升的设置的属性。因此,同一个包可以为每个人提升和安装,或者可以保持不提升并为“只有我”安装。虽然自 Windows 7 推出以来的 InstallShield 版本提供了此配置选项,但它仍然无法在 Windows Vista 上运行。

所以不幸的是,除非您提供两个软件包,否则您无法在 Windows Vista 上获得您想要的行为。您的单个软件包将始终(或从不)提升,因此将始终为每个人安装,或者只为它提升到的管理帐户安装。对于 Windows 7,您应该能够使用该MSIINSTALLPERUSER方法。

于 2013-06-26T12:21:16.783 回答