簡體   English   中英

如何使用Powershell來運行安裝程序?

[英]How can I use powershell to run through an installer?

我正在嘗試安裝一個軟件,該軟件在手動完成時具有配置選項,您可以在整個過程中進行選擇。 我試圖找到一種使用Powershell自動執行此操作的方法,但對於如何設置這些配置選項卻一無所知。 我相信我需要在安裝程序.exe上運行start-process命令,但我不知道從那里去哪里。 我可以使用start-process命令上的參數來傳遞所需的配置嗎?

更新 :指向底部的一些鏈接,其中包含有關如何處理setup.exe文件的安裝配置文件提取的信息。

更新 :請參閱github.com上的Windows Installer PowerShell模塊 (向下滾動以獲取描述,使用releases選項卡進行下載 )。 我還沒有真正測試過它,但是它來自Heath Stewart-微軟高級軟件工程師( github )。


我快速查找了該安裝程序,但發現並不容易。 本質上,安裝程序是Windows Installer數據庫(MSI)或其他某種文件 -通常是某種setup.exe MSI數據庫也可以包裝在setup.exe中。

您應該意識到,對於舊式安裝程序而言,進行大規模部署的常見做法是使用應用程序重新打包工具捕獲舊式安裝程序 ,然后編譯MSI文件以用於安裝(有效地將安裝程序從舊格式轉換為現代MSI格式)。 這是一項專業任務,需要充分了解Windows和設置。 對於大型軟件發行版,通常在大型公司中完成。 如果您在一家大公司中,可能會有一個專門負責包裝軟件的團隊,就像您提到的那樣 也許與您的管理層核對一下。 如果設置是MSI,則同一團隊也可以根據您的要求為您修改。


關於您的安裝程序EXE 嘗試從命令行運行setup.exe /a ,看看是否可以將文件解壓縮到“網絡安裝點”(管理安裝)。 然后,您要處理包含在setup.exe中的MSI文件。 如果這樣不起作用,您也可以嘗試setup.exe /xsetup.exe /extract

Windows Installer具有內置功能,可讓您通過在命令行中設置的PUBLIC屬性 (大寫)或通過轉換 (Windows Installer的機制將實質性更改應用於供應商文件的機制)進行自定義安裝-這是一個部分數據庫在運行時從供應商應用於安裝數據庫)。

非MSI傳統安裝程序技術通常缺少可靠的方式來自定義安裝設置,並且在安裝時它們往往是臨時的。 特別是,靜默運行和卸載可能是缺少或執行不佳的功能。 這些安裝程序通常都以EXE格式打包,並且有許多用於生成它們的工具-每個工具都有自己的怪癖和功能。

換句話說,這完全取決於安裝程序的實現方式。 嘗試執行setup.exe /a ,並為我們提供新信息來更新您的答案(不要添加過多評論-我們將進行檢查)。


關於使用PowerShell 到目前為止,我還沒有使用PowerShell進行部署。 這是有關如何使用PowerShell安裝的基本描述: https : //kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/

您也可以從PowerShell調用MSI文件的自動化功能,我認為這與您的要求無關,但是這里有一個用於修改轉換文件的快速鏈接: http : //www.itninja.com/question/ps-如何編輯mst文件

安裝MSI文件的通常方法是通過Window的內置msiexec.exe命令行。 安裝軟件的基本msiexec.exe命令行為

msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"

快速參數說明:

/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).

什么是轉換? 在這里解釋: 如何更好地利用MSI文件

Advanced Installermsiexec.exe命令行上有一個常規頁面。 這是Microsoft在MSDN上的msiexec.exe文檔


一些鏈接:

  • 也許在這里看到Michael Urman的答案:以編程方式提取InstallShield setup.exe的內容 這僅適用於Installshield打包的EXE文件。
  • Installshield setup.exe命令 (帶有一些示例命令行的一般參考-在文檔的末尾,看來命令行是不正確的,但是第一個看起來還不錯。反之,它們還是很晦澀的-只是以為我會告訴您,因為我鏈接到它了。 這是官方的Installshield幫助文檔
  • Wise setup.exe命令 -Wise不再可用,但是如果安裝較舊,則仍可以與Wise打包在一起。
  • Advanced Installer標准命令行 對於此工具,顯然可以使用setup.exe /xsetup.exe /extract 有關完整列表,請參見鏈接。
  • 還有一個“ 無聲開關查找器 ”工具,用於在exe文件中查找隱藏的開關(用於部署),但是它無法通過virustotal.com掃描,因此我不會鏈接到它。 也許它正在使用一些奇怪的東西,例如以某種級別掃描文件的頭文件,或者將某些奇怪的東西誤認為是惡意軟件? 無論哪種方式,都不是我會使用的工具。
  • 最后: http : //unattended.sourceforge.net/installers.php 這個鏈接還不錯,它提供了上面的一些工具和其他一些工具,以及最常用的開關。 未經我測試,但看起來還可以。
  • 還有其他部署工具也有自己的打包和傳送EXE文件的方式-它可以是叢林。 我可以提供帶有更多鏈接的此類工具列表,但這也許只是令人困惑。 請首先嘗試上面提供的內容。
  • 這是一個通用的答案,可能也有幫助: 從EXE提取MSI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM