【问题标题】:Error trying to pass in variables when calling MSI file调用 MSI 文件时尝试传入变量时出错
【发布时间】:2015-07-28 00:05:10
【问题描述】:

我对使用 Powershell非常很陌生,但很想学习。

我正在尝试使用 PowerShell 并传入一些变量来安装 MSI 包。最终结果是这是通过 Jenkins 使用 PowerShell 部署的无人值守安装。请记住,我已更改此示例的端口号:

msiexec /i /quiet $SYSTEMID ="PC01" $PORT1 =0000 $PORT2 =0001 $TARGETDIR ="C:\Application\" "C:\MSIPackage64bit.msi"

当我尝试运行上述程序时,我收到了一个 Windows ® 安装程序。弹出其中列出了 MSIExec 变量选项的负载。

我在网上找了很长一段时间,现在我认为我遇到了问题,因为我对 PowerShell 缺乏了解。

【问题讨论】:

  • 没有变量的命令应该是什么样子?当您手动替换其中的值时它是否有效?
  • Powershell 变量与 MSI 公共属性完全不同。请回答 arco444 的问题,但我怀疑您想为 MSI 设置公共属性,这是一种不同的语法。

标签: powershell windows-installer


【解决方案1】:

/I 后面需要跟要安装的 MSI 的路径。还要去掉属性名称前面的 $。最后,TARGETDIR 并不总是 TARGETDIR。一些 MSI 被编写为 INSTALLDIR、INSTALLLOCATION 和其他可能的目录表条目名称。添加日志记录 ( /l*v path_to_log ) 通常也是一个不错的选择。

PS- 请注意,由于您正在进行静默安装,因此您需要成为每个用户的安装程序而不需要提升,或者您需要已经提升。

【讨论】:

  • 感谢您帮助我在添加日志记录时遇到了一些问题,但后来能够通过; /log C:\MSIInstaller.log
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 2017-08-27
  • 2022-06-23
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多