使用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執行自動化安裝。

這樣就可以自動安裝軟件運行環境了。

注意:msiexec要以管理員權限運行,否則會彈出UAC對話框。要么就關閉UAC功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM