首页 > 系统相关 >在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何

在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何

时间:2024-08-21 10:29:37浏览次数:16  
标签:log msiexec logPath 静默 日志 安装 PowerShell

在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何使用 PowerShell 脚本执行静默安装。

示例 PowerShell 脚本

powershellCopy Code
# MSI 文件的路径
$msiPath = "C:\Path\To\Your\SetupFile.msi"

# 安装日志文件的路径
$logPath = "C:\Path\To\Your\install.log"

# 构造 msiexec 命令参数
$arguments = "/i `"$msiPath`" /quiet /norestart /log `"$logPath`""

# 启动 msiexec 进行静默安装
Start-Process msiexec.exe -ArgumentList $arguments -NoNewWindow -Wait

# 等待安装完成后检查结果
$exitCode = $LASTEXITCODE

# 根据退出代码判断安装是否成功
if ($exitCode -eq 0) {
    Write-Output "安装成功"
} else {
    Write-Output "安装失败,退出代码: $exitCode"
}

# 可选: 检查和显示安装日志的最后几行内容
if (Test-Path $logPath) {
    $logContent = Get-Content $logPath -Tail 50
    Write-Output "日志内容:"
    Write-Output $logContent
} else {
    Write-Output "日志文件不存在"
}

参数说明

  • /i: 安装指定的 MSI 包。
  • /quiet: 静默安装,不显示用户界面。
  • /norestart: 安装后不自动重启计算机。
  • /log: 指定安装日志的路径。

代码解释

  1. 定义变量

    • $msiPath:MSI 文件的路径。
    • $logPath:安装日志文件的路径。
  2. 构造 msiexec 参数

    • 使用 PowerShell 字符串插值将 MSI 路径和日志路径插入到 msiexec 命令中。
  3. 启动 msiexec 进程

    • 使用 Start-Process 启动安装过程。-NoNewWindow 表示在当前窗口中运行,不弹出新窗口;-Wait 表示等待进程完成。
  4. 检查安装结果

    • $LASTEXITCODE 是 msiexec 执行后的退出代码。如果为 0,表示安装成功;否则表示安装失败。
  5. 处理日志(可选):

    • 检查日志文件是否存在,并读取日志文件的最后几行内容以帮助诊断安装问题。

注意事项

  • 确保脚本以管理员权限运行,因为安装程序通常需要提升的权限。
  • 修改路径和文件名以适应实际情况。
  • 根据需要调整安装参数,例如添加更多的参数来配置安装选项。

这个脚本可以作为基础,根据实际需求进行调整和扩展。


msiexec 是 Windows 的一个命令行工具,用于安装、修复、卸载 MSI 包。虽然 msiexec 命令本身是 Windows 内置的,不是 PowerShell cmdlet,但你可以在 PowerShell 中直接调用 msiexec 命令来执行 MSI 安装操作。

下面是如何在 PowerShell 中使用 msiexec 命令安装 MSI 文件的示例:

powershellCopy Code
Start-Process msiexec.exe -ArgumentList '/i', 'mysql-9.0.0-winx64.msi', '/quiet', '/qn', '/norestart', '/log', 'install.log' -NoNewWindow -Wait

解释:

  • Start-Process:PowerShell cmdlet 用于启动新进程。
  • msiexec.exe:指定要运行的程序(在这里是 msiexec)。
  • -ArgumentList:传递给 msiexec 的参数列表。
    • /i:安装指定的 MSI 文件。
    • mysql-9.0.0-winx64.msi:指定的 MSI 文件路径。
    • /quiet 和 /qn:指定静默安装(不显示用户界面)。
    • /norestart:安装完成后不自动重启计算机。
    • /log 和 install.log:指定日志文件的路径和名称。
  • -NoNewWindow:在当前窗口中运行进程,而不是新窗口。
  • -Wait:等待进程完成再继续执行脚本的下一步操作。

这种方法允许你在 PowerShell 脚本中调用 msiexec,并且能够利用 PowerShell 的功能来控制和管理 MSI 安装过程。


在 PowerShell 脚本中调用 msiexec 并利用 PowerShell 的功能来控制和管理 MSI 安装过程,可以通过以下几种方式来实现:

1. 基本安装命令

使用 Start-Process cmdlet 来调用 msiexec,并传递必要的参数:

powershellCopy Code
$msiPath = "C:\Path\To\Your\mysql-9.0.0-winx64.msi"
$logPath = "C:\Path\To\Your\install.log"

Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /quiet /qn /norestart /log `"$logPath`"" -NoNewWindow -Wait
  • $msiPath:MSI 文件的路径。
  • $logPath:安装日志文件的路径。
  • Start-Process:用于启动安装过程。
  • -NoNewWindow:在当前 PowerShell 窗口中运行。
  • -Wait:等待安装完成再继续执行后续脚本。

2. 捕获安装结果

可以检查 msiexec 的退出代码来判断安装是否成功:

powershellCopy Code
$msiPath = "C:\Path\To\Your\mysql-9.0.0-winx64.msi"
$logPath = "C:\Path\To\Your\install.log"

# 启动安装过程
$process = Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /quiet /qn /norestart /log `"$logPath`"" -NoNewWindow -Wait -PassThru

# 等待安装完成
$process.WaitForExit()

# 获取退出代码
$exitCode = $process.ExitCode

# 检查退出代码
if ($exitCode -eq 0) {
    Write-Output "安装成功"
} else {
    Write-Output "安装失败,退出代码: $exitCode"
}

3. 处理安装日志

在脚本中处理安装日志文件,以便在安装完成后进行分析:

powershellCopy Code
$msiPath = "C:\Path\To\Your\mysql-9.0.0-winx64.msi"
$logPath = "C:\Path\To\Your\install.log"

# 启动安装过程
Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /quiet /qn /norestart /log `"$logPath`"" -NoNewWindow -Wait

# 等待安装完成
Start-Sleep -Seconds 5

# 检查日志文件
if (Test-Path $logPath) {
    $logContent = Get-Content $logPath -Tail 50
    Write-Output "日志内容:"
    Write-Output $logContent
} else {
    Write-Output "日志文件不存在"
}

4. 清理和错误处理

在脚本中添加错误处理和清理步骤,以确保安装过程的稳定性:

powershellCopy Code
$msiPath = "C:\Path\To\Your\mysql-9.0.0-winx64.msi"
$logPath = "C:\Path\To\Your\install.log"

try {
    # 启动安装过程
    $process = Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /quiet /qn /norestart /log `"$logPath`"" -NoNewWindow -Wait -PassThru

    # 等待安装完成
    $process.WaitForExit()

    # 获取退出代码
    $exitCode = $process.ExitCode

    # 检查退出代码
    if ($exitCode -eq 0) {
        Write-Output "安装成功"
    } else {
        Write-Output "安装失败,退出代码: $exitCode"
    }
} catch {
    Write-Output "安装过程中发生错误: $_"
} finally {
    # 可选的清理步骤,例如删除临时文件
    if (Test-Path $logPath) {
        Remove-Item $logPath
    }
}

总结

在 PowerShell 脚本中调用 msiexec 并管理 MSI 安装过程可以帮助你实现更高级的安装自动化任务。你可以通过检查退出代码、处理日志文件以及添加错误处理和清理步骤来确保安装过程的稳定性和可靠性。


 

标签:log,msiexec,logPath,静默,日志,安装,PowerShell
From: https://www.cnblogs.com/suv789/p/18371083

相关文章

  • linux安装samba(ubuntu)
    samba简介samba的功能都是通过一个CIFS(CommonInternetFileSystem)协议套件来管理的,这个名字是由微软引入的。Samba是一个开源的CIFS实现,官网地址为 https://www.samba.org/samba/。SMB(ServerMessageBlockProtocol)协议是一种客户端/服务器通信协议,它主要包括smbd和nm......
  • Jenkins安装部署与配置
    前言Jenkins是一个开源的自动化服务器,用于持续集成和持续交付/持续部署(CI/CD)。它支持自动构建、测试和部署软件项目,帮助开发团队快速检测和解决问题,提高开发效率和软件质量。Jenkins的主要功能持续集成(CI):自动化构建和测试代码。及时发现和修复代码问题,减少集成风险。......
  • android开发将charles证书安装到安卓系统根目录实现https抓包
    android开发将charles证书安装到安卓系统根目录实现https抓包1.安装charles,然后先将charles证书到电脑端下载地址:https://www.charlesproxy.com/安装证书到电脑端先:点击Help->SSLProxying->InstallCharlesRootCertificate->安装证书...->本地计算机->下一步......
  • nvm + node 安装
    nvm(nodeversionmanagement)是用于管理多个nodejs的版本控制工具。通过nvm可以安装和切换不同版本的nodejs。nvm主要是为了解决node.js各种版本存在不兼容现象。准备如果你安装了node.js,请把它删除Releases·coreybutler/nvm-windows(github.com)下载nvm安装包......
  • RockyLinux使用dnf安装snap
    snap是一种用于安装和管理应用程序的软件包格式‌,它有助于简化Linux系统上的软件安装和更新过程,使得用户可以更轻松地管理他们的应用程序。‌snap的优势‌简化管理‌:通过Snap,用户可以更轻松地安装、更新和删除应用程序,无需担心依赖问题。‌提高安全性‌:由于应用程序被隔离在......
  • SourceTree离线安装
    需求:要求在内网环境开发,连不上外网,安装sourceTree又是需要联网的,这就是尴尬了又不想用命令,已经习惯了sourceTree.不说废话,上干货:注意!!!一定按照步骤来,否则不会生效的。注意!!!一定按照步骤来,否则不会生效的。注意!!!一定按照步骤来,否则不会生效的。【第一步】先去官网下载sourceTree......
  • AI Scientist:世界上第一位 AI 科学家智能体!!(AI研究员 & 本地安装 & 撰写论文)
    AIScientist:世界上第一位AI科学家智能体!!(AI研究员&本地安装&撰写论文)原创 Aitrainee AI进修生 2024年08月16日23:08 湖南Aitrainee|公众号:AI进修生Hi,这里是Aitrainee,欢迎阅读本期新文章。分享来自SakanaAI的一个新的研究工具,名为AIScientist。你是否希望......
  • pyotrch GPU版本 安装
    author:徐昊pytorch安装地址StartLocally|PyTorch1.CPU版本pip安装默认cpu版本2.GPU版本1.显卡算力、显卡驱动、cuda版本三者之间需要相互匹配显卡安装的时候就会安装cudadriver(让显卡能进行并行计算)然后安装cudaruntime去调用cudadriver去让显卡进行并行......
  • vSphere5.5.4.N1KV.2.安装VSM
    安装vsmnexus-1000v.4.2.1.SV1.5.1a.ovan1kv实验示意图controlvlan-vlan101managementvlan-lan3packetvlan-vlan102datavlan-vlan4部署vsm注意:在后面的配置过程中要求vsm使用的网络必须是标准交换机的portgroup,不能用分布式交换机.2950-sw(config)#intf0/12......
  • 安装Docker
    官方网址=>https://www.docker.com/下载安装安装完毕之后,启动服务=>直接搜索服务即可检查Hyper-V是否安装路径在=>控制面板=>程序=>启用或关闭Windows功能,如下图如果没有Hyper选项,则新建文件HyPer.cmdpushd"%~dp0"dir/b%SystemRoot%\servicing\Packa......