【问题标题】:msiexec /a not workingmsiexec /a 不工作
【发布时间】:2013-12-03 07:33:44
【问题描述】:

我正在尝试创建一个批处理文件来运行 Adob​​e Reader 9 的无人值守安装(它是一个 MSI 文件)

我的问题在于 UAC。如果我发出这样的命令:

msiexec.exe /i "AcroRead.msi" EULA_ACCEPT=1 ALLUSERS=1 /passive

安装运行良好,除了我必须在它执行任何操作之前接受 UAC。如果我用 /a 替换 /i,它会跳过 UAC,它似乎正在安装,但是当它完成时,它根本没有安装程序!没有错误消息或什么都没有,它不会显示在添加/删除程序中。

如果我使用 /a 开关,可能是它安装到了错误的配置文件?

我对脚本非常陌生,所以我掌握的大部分信息都是我可以从谷歌搜索到的。

我知道有一些方法可以从批处理中禁用 UAC,但如果可能的话,我想避免这种情况。

我在虚拟 Win7 x64 sp1 机器上执行此操作。

【问题讨论】:

  • 我的脚本的最终结果一定是它从一个批次中安装了多个程序。到目前为止,只要我为每次开始的安装都接受 UAC,它就可以完成这项工作。我想让这个完全无人看管。

标签: batch-file uac windows-installer


【解决方案1】:

无论您是通过批处理脚本启动安装程序还是在 Windows 资源管理器中双击 AcroRead.msi 文件,任何软件安装都应提示输入管理员凭据。这就是 Windows 上的权限是如何工作的,老实说,我不想要一个可以通过终端绕过而不提示输入凭据的系统。我不相信有任何办法解决这个问题。

尝试删除/passive,因为这可能会抑制错误消息。还要在批处理脚本的末尾插入 pause 语句,以便在命令提示符关闭之前阅读错误消息。

编辑: 以管理员身份运行批处理脚本。这与使用 /a 命令运行 msiexec 不同。这将在脚本开头打开 UAC 提示符,如果通过身份验证,批处理文件的其余部分将以管理员权限运行。

【讨论】:

  • 我去掉了 /passive 开关,我发现程序正在尝试安装到网络驱动器 (E:),所以它放弃了默认安装路径。我现在尝试输入 TARGETDIR 和 INSTALLDIR,但都不起作用。它仍然指向 E:驱动器
  • Windows 有时会在访问网络驱动器上存在的数据时遇到问题。您可以尝试在本地驱动器上安装 AcroRead.msi 看看是否可行?
【解决方案2】:

/a 不用于正常安装。它将生成一个administrative installation。允许其他用户从公共存储库安装的“网络”安装。

【讨论】:

  • 所以我需要坚持使用 /i,然后按照 UAC 提示进行操作
  • 有一些选项,见here
猜你喜欢
  • 2021-11-22
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 2023-03-16
  • 2021-01-25
  • 1970-01-01
相关资源
最近更新 更多