使用Powershell实现自动化安装/卸载程序

最近需要制作软件安装包,需要附带VC运行时和.Net Framework的安装,但又不想让用户自己点下一步,所以就有了以下操作。

微软提供了一个程序叫msiexec.exe,位于C:\Windows\System32

msiexec提供了从命令行安装、修改Windows安装包等功能。常见的如.msi这样的安装包。

打开Powershell/cmd,输入

msiexec /?

可以看到详细的参数

这里主要介绍一下如何自动安装/卸载。如果需要更详细的使用,可以访问 https://docs.microsoft.com/zh-cn/windows/win32/msi/command-line-options?redirectedfrom=MSDN

安装 

msiexec /i "xxxxx.msi" /qr

/q是安静模式,无用户交互,/q后面再带上nbrf,可以设置软件安装界面的显示方式

/q[n|b|r|f]
设置用户界面级别
n - 无用户界面
b - 基本界面
r - 精简界面
f - 完整界面(默认值)

使用Powershell下载并安装MICROSOFT® REPORT VIEWER 2015 RUNTIME

#添加程序集
Add-Type -AssemblyName System.IO
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.IO.Compression.FileSystem

#下载地址
$DownloadUrl = "https://download.microsoft.com/download/A/1/2/A129F694-233C-4C7C-860F-F73139CF2E01/ENU/x86/ReportViewer.msi"
#下载到Temp目录
$TempPath = $env:TEMP
#下载的文件名
$FileName = "ReportViewer.msi"
#存储的完整文件路径
$FullPath = "$TempPath\$FileName"

#Download
$client = New-Object System.Net.WebClient
"Now is downloading MICROSOFT® REPORT VIEWER 2015 RUNTIME"
$client.DownloadFile($DownloadUrl, $FullPath)
"Download success"

#Install
msiexec.exe /i $FullPath /qr

"Press any key to exit"Read-Host

运行以后,如下

卸载

msiexec /x /package <Product.msi | ProductCode> /qr

可以指定msi安装包,也可以指定ProductCode,可以访问从注册表以下位置查找ProductCode。

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

使用Powershell卸载MICROSOFT® REPORT VIEWER 2015 RUNTIME

1  msiexec.exe /x "{3ECE8FC7-7020-4756-A71C-C345D4725B77}" /qr

如果是压缩包式的安装包,如 Microsoft Visual C++ 2015 Redistributable,

可以直接使用 vc_redist.x86.exe /?查看自动化安装的参数。

也可以使用Winrar等压缩软件,解压出msi安装包,继续使用msiexec.exe执行自动化安装。

这样就可以自动安装软件运行环境了。

原文地址:https://www.cnblogs.com/zhaotianff/p/11558602.html

时间: 2024-08-22 13:37:35

使用Powershell实现自动化安装/卸载程序的相关文章

WPF 自己动手来做安装卸载程序

原文:WPF 自己动手来做安装卸载程序 前言 说起安装程序,这也许是大家比较遗忘的部分,那么做C/S是小伙伴们,难道你们的程序真的不需要一个炫酷的安装程序么? 声明在先 本文旨在教大家以自己的方式实现安装,至于炫酷部分概不负责. 剖析 我们经常安装形形色色的程序,而碰到的安装步骤基本可概括为一下几种 1,欢迎界面 - 无剖析可言 2,选择路径页 - 无剖析可言 3,安装页 - 包括解压.添加注册表 4,完成页 - 创建快捷方式.开机启动.运行 根据实际使用不同适当修改. 经过剖析我们发现,其实一

您上次已将进行的搜狗输入法的安装或卸载,操作要求重启。您在重启之后才能继续新的输入法安装卸载程序。

如果于鏊这样的问题: 描述是:“您上次已将进行的搜狗输入法的安装或卸载,操作要求重启.您在重启之后才能继续新的输入法安装卸载程序” win+R输入:regedit按照如下路径找到“SogouInput” HKEY_LOCAL_MACHINE\SoftWare\Wow6432Node\SogouInput\ 删除注册表中的“SogouInput” 重新安装即可!  

用AutoIt自动安装和卸载程序

由于代码每天都会更新,编译组每天晚上会针对当天的代码编译出一个新的Build(除非编译不通过),而测试组第二天早上都会安装前一天晚上编译出的Build进行测试. 一直以为测试组每天都手动地重复着这些枯燥无味的卸载.安装工作,直到同组的一个同事告诉我,测试组每天的卸载和安装工作都是通过脚本自动实现的,无需人为干预. 原来他们使用了一款叫做AutoIt的工具.个人以为,要实现这种自动化的功能,要么让程序以控制鼠标或键盘的方式进行实际的操作,要么让程序通过给 系统发消息的方式模拟鼠标和键盘的操作.无论

帮同事写了几行代码,在安装/下载程序里注册/卸载OCX控件

写了个小控制台程序,这个程序用来注册 / 卸载OCX控件,用在Inno Setup做的安装卸载程序里. #include "stdafx.h" #include <windows.h> #include <iostream> using std::cout; using std::endl; using std::cerr; int _tmain(int argc, _TCHAR* argv[]) { __try { STARTUPINFO si1 = {siz

Linux中安装卸载软件

在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现.与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM.它可以用来建立.安装.查询.更新.卸载软件.该工具是在命令行下使用的.在Shell的提示符后输入rpm,就可获得该命令的帮助信息. 安装方法一: XXX_linux_x86_64.tar.gz包上传至需要安装的Linux服务器的/tmp路径下,使用命令进行解压 #gunzip XXX_linux_x86_64.tar.g

安装和卸载程序时总是出现2502,2503错误代码的解决方法

  最近一段时间安装和卸载软件时,总是报错,错误代码为2503.2502,install uninstall,error 2503 2502在网上找了一些资料,发现是权限不够,以下是找到的个人觉得最佳的解决方案 传送门在这里 Solution1:(个人觉得这是最佳解决方案) 第一步:打开任务管理器,并转到详细选项,找到 Explorer.exe (资源管理器),并结束任务 第二步:新建任务,输入 Explore.exe,并选中“以系统管理权限创建”复选框,之后点击“确定”按钮 第三步:开始“为所

Android程序如何创建及安装卸载

1.创建项目 菜单 -> File -> New -> Other -> Android -> Android Application Project 一路向下NEXT,选择Create Activity时选择Empty Activity(空) 注:创建项目时不可使用中文,以上图片仅为演示. 2.编译运行 菜单 -> Run -> Run As -> Android Application 手动卸载如下 Settings -> Applications

【Android应用开发】-(9)应用程序安装卸载原理

本文粗体部分来自网络上的一篇文章,已不知出处,知道的告知,在此谢谢原作者.引出安装卸载的原理之前,先实现一个简单的安装卸载应用程序的功能.文章是我之前写的一篇博客,这里就不在叙述,只补充几点: 1.由于代码中用到了PackageInstallObserver,PackageInstallObserver在Eclipse中是不能调用的,必须在Linux环境下编译好系统后才能编译此应用程序. 2.Android4.0安装的api以及和2.3的不同,多了个参数.感兴趣的可以从哪看PackageInst

Ubuntu中wine安装的程序如何卸载

很多朋友尝试在Ubuntu中用wine安装exe格式的应用程序,但经常遇到装完之后启动程序就崩溃.或者根本无法启动.无法使用的情况,于是想立即把安装的程序卸载,可是在wine中却找不到卸载exe软件的方式,今天就给大家分享一下wine卸载exe软件的两个方法: 1.删除法 Ubuntu系统安装的软件会分布在很多不同的目录,即使使用wine模拟windows安装也会如此: wine会在/home下的用户名目录生成三个隐藏的文件夹 .wine..local..config ,默认是看不到的,通过按快