我正在尝试使用“测试完成/测试执行”在测试计算机上安装第三方安装。我编写了一个Python脚本,该脚本调用PowerShell脚本,并使用msiexec
安装位于文件夹中的所有.msi文件。
我用来调用msiexec
的命令:Start-Process -FilePath msiexec.exe -ArgumentList ("/I
“ $ fullPath "", "/qb", "ALLUSERS=TRUE", "/norestart") -Wait
除我的一个安装外,所有安装均可。一个无法正常工作的消息会打开并显示以下消息:
我正在TestExecute
中执行这些脚本,所以由于我的其余测试将无法完成,因此无法将其关闭。
我要使用的安装程序不是我编写的,因此无法编辑任何内容。有人知道是什么导致.msi
和TestExecute
之间发生冲突,还是知道我可以更深入地确定原因?
答案 0 :(得分:1)
文件覆盖 :显示此对话框的设置正在尝试替换正在使用的文件,因此您将获得此Restart Manager对话框。对于某些创作不当的服务设置(安装程序应先自行关闭服务,然后再尝试替换文件)或安装了始终运行的应用程序的安装程序而言,这是典型的行为。 >
基本用户界面与无用户界面 :您正在使用 /qb
选项运行,这意味着基本用户界面-这意味着您会看到简单的进度和错误处理对话框。技术详细信息在这里:User Interface Levels。
FilesInUse对话框 :我不喜欢的一个选项是set the MSIRESTARTMANAGERCONTROL property to Disable as described here(一直到底部)。这将禁用Windows中较新的重启管理器功能,而使用旧式的“ FilesInUse对话框”。我不确定在使用 /qb
运行安装程序时是否会显示此对话框-可能不会显示该对话框-使您的安装程序看起来完全无声(但不是)。
正确的静默安装 :我将改为使用 /qn
来启用无用户界面代替。 msiexec.exe
命令行包含一些“别名”。例如, /quiet
映射到 /qn
。 /passive
映射到 /qb!
。看起来您正在混合并匹配较新的“ 标准安装程序命令行选项 ”和“实际”“ msiexec.exe命令行”选项 ”。前者的介绍要晚于后者:
msiexec.exe
msiexec.exe
使用什么选项无关紧要,但是我会一贯使用一个选项。因此,我将 /norestart
替换为 REBOOT=ReallySuppress
。
因此,您可以尝试类似(cmd.exe
版)的操作:
msiexec.exe /I c:\MySetup.msi /qn /L*V "C:\msilog.log" ALLUSERS=1 REBOOT=ReallySuppress
快速参数说明:
/I c:\MySetup.msi = run installation sequence for specified MSI file
/QN = run completely silently
/L*V "C:\msilog.log"= verbose logging
ALLUSERS=1 = Install per-macine (for all users)
REBOOT=ReallySuppress = do not reboot after install even if reboot is scheduled
WICLB.exe :以前是 Wise 中的一个工具,可以帮助构建 msiexec.exe
通过专用的GUI来执行strong>命令行。 I describe it here: WICLB.exe。当Wise退出市场时,它消失了,但是Wayback Engine提供了一个副本。
类似问题 :