【问题标题】:Make UAC optional in Windows Installer on Vista在 Vista 上的 Windows Installer 中使 UAC 成为可选
【发布时间】:2008-10-31 08:26:38
【问题描述】:

我已经编写了一个 msi 文件,该文件在 UI 阶段提供了“按用户”或“所有人”安装的选择,现在发现安装程序在 Vista 上失败:

  • 如果我只是重用适用于 XP 的安装程序,Vista 会触发 UAC 提示,即使是“按用户”安装,安装也毫无意义
  • 如果我在 PID_WORDCOUNT 的第 3 位关闭 UAC,Vista 将不再调用 UAC,因此即使用户有权安装到计算机注册表(例如),也不会发生权限提升,所以安装失败。

那么:如何防止安装程序在不需要时调用 UAC?或者,即使设置了第 3 位,我如何以编程方式请求 UAC?

【问题讨论】:

    标签: windows-vista windows-installer


    【解决方案1】:

    不幸的是,Windows Installer 没有提供一种方法来创建可以按计算机和按用户安装的单个软件包,而只会在每台计算机的情况下提示输入 UAC。问题是可以抑制 UAC 提示的位存储在 SummaryInformation 流中,并且在包执行时不可修改。

    【讨论】:

    • 感谢您的确认。这是否有严重的设计原因,或者我们是否可以希望有一天这个标志成为一个属性?
    • 听说微星 5.0 正在做这方面的事情。但是我们需要Win7。
    【解决方案2】:

    【讨论】:

    • 请理解我不是在谈论可执行文件的 UAC - 没有 setup.exe。相反,用户直接启动 MSI 文件。
    • 这是一系列博客文章的绝佳链接,这些文章讨论了用户访问控制 (UAC) 与 Windows Installer (.msi) 技术之间的关系。感谢您的链接,@sascha!
    【解决方案3】:

    我通过在我的 MSI 包中设置 PID_WORDCOUNT 的第 3 位来关闭 UAC。我可以为“ALLUSERS”和“PER-USER”安装它,还可以在 VISTA 机器上的两种模式下为 HKLM 写入。 安装过程中是否必须为特权用户弹出 UAC 窗口?

    【讨论】:

    • 关闭此位对我不起作用。用户会收到“权限被拒绝”错误,即使他们是管理员组的成员。只有管​​理员自己才能成功安装包。
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多