【发布时间】:2017-11-17 02:50:03
【问题描述】:
我正在尝试编写一个静默安装 .msi 的脚本。当我从 Powershell 命令行将命令作为带有参数 /qn 的 ./thing.msi 运行时,它工作得很好。 但是,现在它位于脚本中,它返回 1603 错误(“安装期间发生致命错误”)。如果我尝试切换它并在有或没有 /quite 的情况下转到 /qb,它会运行,但它不是静默的。使用 -WindowStyle Hidden 也无济于事。有什么想法吗?
$InsightInstall = Start-Process -FilePath $PSScriptRoot\support.msi -
ArgumentList "/quiet /qb" -Wait -Passthru -WindowStyle Hidden
if($InsightInstall.ExitCode -eq 0)
{
Write-Host "Installation complete."
}
else
{
Write-Host "Failed with ExitCode" $InsightInstall.ExitCode
pause
}
【问题讨论】:
-
我想你想打电话给 msiexec:
$InsightInstall = Start-Process msiexec -ArgumentList "/i $PSScriptRoot\support.msi /qn" -Wait -Passthru -WindowStyle Hidden -
嗨,本,感谢您的回复!不幸的是,我也尝试过。它最终返回 1603(但只有当我从脚本运行它时,当我直接在命令行中运行它时它工作得很好。)
-
1603 只是通用故障代码。编写详细日志以获取更多错误详细信息:
-ArgumentList "/quiet /l*v logfile.txt"。顺便说一句,同一命令行上的/quiet和qb毫无意义。/quiet等价于/qn(参见reference)。 -
感谢您提供信息,@zett42!我不知道
/quiet和/qn是一回事。我按照您的建议制作了一个详细的日志文件,它确实制作了一个非常详细的日志文件。我现在正在滚动它。关于应该寻找什么来加快这一进程的任何建议? (我对 Powershell 和有用的 useful 脚本还很陌生,所以如果我的问题简单到愚蠢,请原谅我。) -
泽特,伙计,这种帮助是无价的。我最终发现管理员有权访问的文件夹(我当然是)不允许我在其中工作。脚本很好,一个非常奇怪的权限事情不太好。我通过阅读“返回值 3”上方的日志消息并搜索结果发现了这一点。你这个男人,希望我能投票给 cmets。
标签: powershell windows-installer