【问题标题】:Failed to install [Name] MsiExec returned: 255, when running an cmd file from Powershell从 Powershell 运行 cmd 文件时,无法安装 [Name] MsiExec 返回:255
【发布时间】:2012-08-11 15:51:25
【问题描述】:

我正在尝试使用 cmd 文件从 Powershell 运行 MSI 安装命令。
我创建了我的安装命令:

msiexec /i [insert here a HUGE amount of param values] /lv install.log /passive

然后我将其写入 temp.cmd,然后从 Powershell 执行如下:

$exitCode = (Start-Process -FilePath "temp.cmd" -Wait -Passthru).ExitCode

然后我收到以下错误消息:

CategoryInfo : OperationStopped: 255:String
RuntimeException 完全限定错误 ID
安装失败 [Msi Name] MsiExec 返回:255

是什么原因造成的?

【问题讨论】:

  • 如果不显示 temp.cmd 的内容,则无法回答 msiexec 透视的问题
  • 谢谢!,实际命令太长,无法发布,所以我添加了一个简短版本来说明我在做什么。
  • 我很好奇你为什么会有一个很长的命令。如果您要设置大量公共属性,则应考虑使用转换 (foo.mst TRANSFORMS=foo.mst) 来封装它并缩短命令行。
  • 这是旧版 Powershell 脚本的设计问题,它从配置文件中获取所有变量并将它们发送给每个安装程序。我将此问题添加到 SO 中,以防有人 Google 的错误,现在他们希望能找到一些帮助。感谢 TRANSFORMS 的提醒,不知道这一点,所以我会钉上它,看看我的进展如何!

标签: powershell windows-installer


【解决方案1】:

如果您尝试从命令行运行我遇到问题的 MsiExec 命令,我会收到以下错误消息:

输入行太长

此错误在 Powershell 中执行时并不明显,您可能认为这是 MsiExec 的问题。

这是一条神秘的错误消息,与命令行总长度为 8191 的 cmd.exe 有关。
请参阅有关 cmd 长度的 Microsoft 知识库文章:http://support.microsoft.com/kb/830473

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 2022-11-24
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多