3

如果不关闭 UAC,我的 msi 安装程序无法安装在 Vista 机器上。由于我的应用程序将分发给我的客户,大约 20 台机器,并且他们不想关闭 UAC,有没有一种方法可以设置一些属性,让我的安装程序在 UAC 时无需任何用户交互即可静默运行,启用,弹出窗口

4

5 回答 5

4

我发现了解 UAC 的最佳资源是Robert Flamings 博客,他有一系列大约 25 篇文章,解释了 Vista、UAC 和 MSI 如何相互作用。

如果您正在执行每台计算机安装 (ALLUSERS=1),Vista 将始终在到达 InstallExecuteSequence 时提示,但是如果您的安装程序需要在此序列之外进行提升,那么最好的解决方案是使用引导程序带有清单的 EXE,表明运行 EXE 时需要提升。

我们使用来自 Indigo Rose 的商业引导程序(它是一个独立的应用程序,但仅作为MSI Factory的一部分出售),但您可以使用NSIS获得创意,使用Visual Studio并且在Windows Installer SDK中还有一个示例

于 2009-04-28T23:29:26.070 回答
2

弹出 UAC 是因为您正在安装到用户无权访问的文件夹,例如 Program Files,也许尝试安装到用户主驱动器之外的目录?Vista 中的主驱动程序是 c:\Users\Username,那里有一个用于本地应用程序的目录,C:\Users\Username\AppData\Local\Apps。

于 2009-04-28T13:58:23.117 回答
1

您可以将安装通告给您的 20 个客户端。当他们触发广告钩子(开始菜单快捷方式、COM 接口、文件关联等)时,程序将以管理员权限安装。

以下是管理员如何宣传软件包的示例:

msiexec.exe -jm c:\\mypackage.msi

MSDN 文章: http: //msdn.microsoft.com/en-us/library/aa367548 (VS.85).aspx

于 2009-06-02T20:20:52.070 回答
0

Vista/UAC 应该会提示您确认继续安装,而不是完全阻止它。你的微星叫什么名字?就像,如果您将其重命名为setup.msi ,它会神奇地工作吗?

于 2009-04-28T14:11:15.787 回答
0

应该可以帮助你。

编辑:响应您的澄清请求。您可以使用任务计划来计划运行不会提示的安装,然后您可以让用户/系统管理员从脚本安装该计划程序(例如,您可以计划它在用户下次登录时运行) .

这是在 Vista 中避免确认对话框的唯一方法(没有禁用 UAC,您不想这样做)。

我希望这能让事情变得清楚。

于 2009-04-28T13:57:58.220 回答