如何在PowerShell中运行Windows安装程序并获取成功/失败的值?

我想安装一套应用程序:.NET 4,IIS 7 PowerShell管理单元,ASP.NET MVC 3等.如何让应用程序安装并返回一个值,以确定安装是否成功?
这些答案似乎过于复杂或不够完整.在PowerShell控制台中运行安装程序有一些问题.一个MSI在 Windows subsystem运行,所以你不能只是调用它们(Invoke-Expression或者&).有些人声称通过管道将这些命令通过Out-Null或Out-Host进行工作,但是我没有观察到工作.

适用于我的方法Start-Process,静默安装参数为msiexec.

$list = 
@(
    "/I `"$msi`"",# Install this MSI
    "/QN",# Quietly,without a UI
    "/L*V `"$ENV:TEMP\$name.log`""     # Verbose output to this log
)

Start-Process -FilePath "msiexec" -ArgumentList $list -Wait

您可以从Start-Process命令获取exit code,并检查其通过/失败值. (这里是exit code reference)

$p = Start-Process -FilePath "msiexec" -ArgumentList $list -Wait -PassThru

if($p.ExitCode -ne 0)
{
    throw "Installation process returned error code: $($p.ExitCode)"
}

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...