我的.msi在Windows Vista和Seven上的行为怎么会这么奇怪?

时间:2013-06-26 09:30:45

标签: windows deployment windows-installer windows-vista installshield


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

我用virtuabox虚拟化Vista和Seven,每个都有3个账号:

-Admin1(默认帐户)

-Admin2

-User1

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

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

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

所以我的问题是: 我的.msi在Windows Vista和Seven上的行为怎么会这么奇怪? 我能找到什么来解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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

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