【问题标题】:Per-user installation does not work with turned on UAC (default level) on Windows 7在 Windows 7 上打开 UAC(默认级别)时,按用户安装不起作用
【发布时间】:2014-10-21 10:44:21
【问题描述】:

我创建了一个按用户安装的 MSI 包。

根据教程,如果安装不会在 %USERPROFILE% 之外写入文件,并且不会在 HKCU 之外更改注册表,那么这样的安装可以由没有管理员权限的普通用户安装。

但是在我打开UAC(默认级别)的电脑上,会出现以下消息,并且系统要求输入管理员的登录名和密码:

您是否要允许来自未知发布者的以下程序对此计算机进行更改

我的安装是否进行了一些未经许可的更改?或者这是 Windows 7 的正常行为,普通用户根本无法安装每个用户的应用程序?

【问题讨论】:

  • 有些东西肯定是在 USERPROFILE 之外写的,因此是 UAC 消息。在包中设置 InstallScope="perUser" 然后构建,我认为如果您有任何违反 perUser 范围的内容,您应该收到警告/错误。如果你没有得到任何东西,那么你应该考虑发布你的一些代码。
  • 我忘记添加 InstallScope。谢谢。

标签: wix windows-installer uac


【解决方案1】:

除了设置 InstallScope="perUser" 之外,您还必须设置 InstallPrivileges="limited",这样您将拥有如下内容:

<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" InstallPrivileges="limited"/>

【讨论】:

  • 正确,但您不必明确设置它,因为 InstallScope 会为您执行此操作,来自文档:perUser需要提升权限才能安装。将包的 InstallPrivileges 属性设置为“受限”。
【解决方案2】:

关于未知发布者的评论与管理员无关。这只是意味着 MSI 文件未签名。

如果您刚刚将 InstallPrivileges 设置为 ElevatedInstallScope 作为 permachine,您应该发布一些 WiX Package 内容。这些可能会导致该海拔提示。

请注意,您不会收到提升提示,因为 Windows 检测到您的设置可能会更改系统的受限部分,因为它还不知道!这是您的 WiX 源中的设置。如果设置没有收到提升提示并继续进行,那么您就会发现自己是否违反了安全性,并且设置将失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多