跳至主內容
Splashtop20 years of trust
登录免费试用
+1.408.886.7177登录免费试用
A man working on his computer in an office.

MSI vs EXE installers: Which should you deploy?

閱讀時間:10 分鐘
更新
開始使用 Splashtop
最受好評的遠端存取、遠端支援和端點管理解決方案。
免费试用聯絡銷售部門

當製造商提供 MSI、EXE 或兩者時,MSI 與 EXE 安裝程式的選擇,取決於安裝流程有多可預測。每個 MSI 都透過 Windows Installer 執行,並共用相同的靜默安裝參數、記錄檔和解除安裝命令;而每個 EXE 的行為則取決於用來建立它的工具。這項差異會決定部署前需要進行多少研究,以及可使用哪一種 Intune 應用程式類型。

要選對方案,不能只看基本比較。許多說明只停留在定義層面,而且有些常見說法其實並不正確,例如認為每個 EXE 都是自成一體,或只有 MSI 才能大規模部署。IT 團隊需要了解每種格式在部署時實際會如何運作。

有了這個前提,接著一起來看看 MSI 與 EXE 安裝程式的差異、了解各自的運作方式,並協助找出最適合應用程式部署的選擇。

什麼是 MSI 安裝程式?

MSI 是一種 Windows Installer 套件,包含安裝應用程式所需的邏輯與資料。Windows Installer(msiexec.exe)會讀取該套件並將其安裝到裝置上,同時依照其中包含的任何命令與特殊指示執行。每個 MSI 都有一個產品代碼,部署工具會用它來偵測是否已安裝,並執行解除安裝。

每個 MSI 都透過相同的引擎執行,因此會使用相同的命令列選項,例如 /qn 可在沒有使用者介面的情況下進行靜默安裝,或使用 /norestart 來控制重新開機。管理員可以透過命令列上的公開屬性或 transform(以 .mst 的形式),在不編輯套件的情況下自訂安裝檔案)。如需完整的參數與結束代碼清單,請參閱我們的MSI 靜默安裝指南。

使用 MSI 時,預設會啟用復原,因此如果安裝失敗,Windows Installer 會還原任何變更。不過,套件作者可以停用復原,而自訂動作只有在套件作者為其加入復原步驟時,才會一併復原。

什麼是 EXE 安裝程式?

EXE 是一種檔案類型,其中 .exe 是 Windows 程式的副檔名,因此它的行為取決於用來建立它的工具。常見的建置工具有很多種,例如 InstallShield、NSIS 和 Advanced Installer,而每一種都有各自的靜默安裝參數、記錄方式和重新啟動行為。我們的 EXE 靜默安裝指南涵蓋了每一種的參數。

由於 EXE 的類型很多,行為方式也可能各不相同。有些會直接安裝檔案,另一些則是封裝程式,內含 MSI 並將其交由 Windows Installer 處理。雖然把 MSI 放在 EXE 裡看起來可能有點奇怪,但這樣可讓 EXE 檢查先決條件、依序安裝,並使用自訂安裝精靈。

雖然許多人認為每個 EXE 都是程式本身的獨立封存檔,但上述的包裝 EXE 顯示情況並不總是如此。

MSI 與 EXE 安裝程式:部署上的主要差異

那麼,MSI 和 EXE 安裝程式之間有哪些主要差異?可以這樣拆解說明:

特性

msi

exe

安裝是由什麼執行

Windows Installer(msiexec.exe)

EXE 自身的邏輯,或是在 EXE 封裝 MSI 時由 Windows Installer 處理

靜默安裝參數

所有 MSI 都一樣:/qn 或 /quiet

取決於建立它的工具;有些 EXE 沒有任何參數

記錄檔

/l*v 會為任何 MSI 寫入詳細記錄檔

視情況而定:/LOG(Inno Setup)、/debuglog(InstallShield setup.exe)、/log(WiX Burn)

自訂

命令列上的公用屬性,或轉換檔(.mst)

製造商內建的任何選項;InstallShield InstallScript 安裝程式需要錄製的回應檔

安裝失敗

Rollback 預設為啟用(雖然作者可以停用)

取決於建立它的工具

靜默解除安裝

使用 msiexec /x 搭配檔案或產品代碼

廠商的解除安裝程式及其專用的靜默參數

Intune 應用程式類型

企業營運應用程式(單一命令列引數)或 Win32 應用程式

僅限 Win32 應用程式

Intune 偵測規則

可使用 MSI 產品代碼規則

檔案、登錄或指令碼規則

先決條件與套組

每個套件僅限一個產品(Windows Installer 4.5+ 可串接套件)

Bootstrapper EXE 可依序安裝必要條件和多個套件

考量到這些差異後,很明顯沒有任何一種格式在所有情況下都比較優越。MSI 可提供可預測且一致的命令、記錄等,而 EXE 則提供更高的彈性。但作為這種彈性的代價,EXE 安裝程式在部署前也需要先進行研究。

如何判斷 EXE 其實是內含 MSI

您下載的 EXE 可能只是內含 MSI 的交付包裝程式。在這些情況下,通常可透過傳遞參數取得 MSI 的行為,或直接單獨部署 MSI。判斷 EXE 是否包含 MSI 可能需要幾分鐘,但可省下數小時研究參數的時間。

您可以依照以下幾個步驟,檢查 EXE 內是否包含 MSI:

  • 查看製造商的部署文件:有時候,答案就白紙黑字寫得很清楚。支援企業部署的製造商通常會發布 MSI,或為其 EXE 文件說明 msiexec 選項,因此很容易找到。

  • 從命令提示字元以 /? 執行 EXE:這樣會叫出說明輸出,其中通常會列出建置它所使用的工具。InstallShield Basic MSI 安裝程式會透過 /v 傳遞 msiexec 選項(例如,setup.exe /s /v"/qn"),而 Advanced Installer EXE 則接受 /exenoui,後面再接 msiexec 參數。

  • 查詢該應用程式的 WinGet 資訊清單:WinGet 中的每個安裝程式項目都會記錄一個 InstallerType,例如 msi、burn、inno 或 nullsoft。如果是 burn 項目,表示它是會串連套件的 WiX bundle,而且可能會使用 MSI。另一方面,Inno 和 Nullsoft 項目不使用 Windows Installer。

  • 使用封存工具開啟 EXE:許多包裝器 EXE 都可以使用 7-Zip 等工具開啟,因此可以看到 .msi檔案在裡面。

如果 EXE 裡面有 MSI,建議依照製造商的文件說明和傳遞參數處理,而不是自行解壓縮 MSI。解壓縮 MSI 可能會讓您略過封裝程式包含的必要條件或設定,因此在部署前先進行測試一向都很重要。

如何透過 Microsoft Intune 部署 MSI 和 EXE 安裝程式

使用 Microsoft Intune 部署應用程式時,MSI 和 EXE 安裝程式會採用不同的方法。請記住,Intune 不支援互動式安裝,因此無論使用哪種格式,都要確保它能以靜默方式執行。

部署 MSI

部署 MSI 時,有兩個選項:若使用 Windows 企業營運 (LOB) 應用程式,可以直接採用該應用程式,但只能使用一個命令列引數;若使用 Win32 應用程式管理,則可加入更多引數。Win32 應用程式會將 MSI 封裝成 .intunewin檔案,使用 Microsoft Win32 Content Prep Tool。接著,它會讀取 MSI 的詳細資料供 Intune 使用,並可透過其產品代碼偵測。

混用兩者時請小心。在 Windows Autopilot 註冊期間同時安裝 LOB 與 Win32 應用程式可能會失敗,因為兩者會同時使用 Trusted Installer 服務(Autopilot 裝置準備支援混用)。因此,Microsoft 建議只考慮使用 Win32 應用程式類型,尤其是多檔案安裝程式。

部署 EXE

EXE 安裝程式不被接受為 line-of-business 應用程式,因此每個 EXE 都會以 Win32 app 的形式加入。安裝程式會被包裝成 .intunewin檔案,然後在 Intune 中新增應用程式時,輸入靜默安裝命令、解除安裝命令和偵測規則。請注意,沒有可供偵測的產品代碼,因此需要使用檔案、登錄機碼或指令碼偵測規則。

EXEs 在需要重新啟動時也會傳回不同的代碼,因此設定傳回代碼時請將這點納入考量。例如,Inno Setup 無論是否需要重新啟動,都會傳回 0,除非設定 /RESTARTEXITCODE。

MSI 或 EXE:該部署哪一個?

考量到 MSI 與 EXE 安裝程式之間的差異,您可能會想知道哪一種最適合您。答案會因供應商提供的選項而異,但在評估各種選擇時,您可以記住以下幾個重點:

  • 該製造商兩者皆有提供:如果同時提供 MSI 和 EXE,請先從 MSI 開始。這可讓您取得標準的靜默安裝參數、詳細記錄檔,以及可用於解除安裝與偵測的產品代碼,而不需要花大量時間研究。

  • 製造商建議使用 EXE:如果製造商表示應該使用 EXE,通常代表它會安裝單靠 MSI 無法安裝的先決條件或元件。不過,請務必確認它是否會傳遞 msiexec 選項,這樣就能保有 MSI 式的控制能力。

  • 僅提供 EXE:如果只有 EXE 可用,建議先確認是哪個工具建立了它,並找出其靜默安裝參數,再進行其他操作。

  • 這個 EXE 沒有靜默選項:靜默安裝選項很重要,因此如果這個 EXE 缺少此選項,請先向製造商索取 MSI 版本。如果還是不行,您可以透過擷取安裝程式所做的變更並重新封裝成新套件來重製 EXE,不過重新封裝的安裝程式在後續更新時會較難維護。請在 什麼是應用程式封裝 中深入了解。

  • 使用 Intune 部署時:請記住,只有在單一命令列引數就能涵蓋所需設定的情況下,MSI 才能作為 LOB 應用程式加入。如果需要的不只這些,建議兩種格式都使用 Win32。

無論選擇哪一種,都別忘了在將應用程式部署到各個裝置之前,先完整測試所有項目。這包括安裝、偵測、解除安裝和結束代碼,建議先在乾淨的裝置上測試,並在每個新版本中重複進行。

為什麼每個安裝程式仍然需要封裝作業

無論使用 EXE 或 MSI 安裝程式,在部署之前,仍然需要先做一些準備工作。雖然 MSI 可節省研究時間,但每個應用程式仍需確認其安裝命令、偵測規則、測試、封裝等項目。接著,當應用程式推出新版本時,整個流程又得重來一次。

幸好,合適的工具可以將這項工作自動化,替 IT 團隊省下原本會耗費在單調手動封裝上的時間與精力。這就要談到 Splashtop Agentic Packr,這是一款 AI 驅動的應用程式封裝工具,可協助團隊以更完善的治理機制和更少的手動作業來封裝、驗證及部署應用程式。

Splashtop Agentic Packr 可協助您:

  • 分析安裝程式,並根據安裝邏輯建立 PSADT 套件。

  • 為每個應用程式撰寫偵測規則。

  • 在乾淨的虛擬機器上測試每個套件,並執行安全掃描,同時提供 QA 評分表與記錄檔供審查,讓管理員能在任何內容發布前先檢視結果。

  • 建立 Intune 套件並發佈到 Intune,或建立套件組以透過 SCCM 或在 Windows 裝置上手動部署。

  • 自動偵測新版應用程式,並建立更新後的套件。

Splashtop AEM(Autonomous Endpoint Management)新增了一種方式,讓您除了使用 Splashtop Agentic Packr 建立的套件外,還能在各端點上執行指令碼和工作。

為 Intune 封裝 MSI 和 EXE 應用程式,無需逐一研究每個應用程式

當製造商選擇 MSI 或 EXE 安裝程式時,這個決定會影響在安裝之前,應用程式需要進行多少研究。MSI 需要較少研究,且可預測性更高;而 EXE 安裝程式則提供更大的彈性。即使如此,每個應用程式和每次更新,仍都需要先經過封裝與測試,才能安全地提供給使用者。

透過 Splashtop Agentic Packr,可將安裝程式轉換為經過測試的 Intune 套件。Agentic Packr 可自動化應用程式封裝流程,包括讀取安裝程式、撰寫偵測規則及進行測試,無需手動撰寫指令碼或具備封裝專業知識。這能加快封裝速度,同時讓 IT 團隊維持掌控。

想深入了解 Splashtop Agentic Packr 嗎?立即了解它如何協助您更有把握地部署應用程式和更新。

別再手動封裝應用程式
讓 Splashtop Agentic Packr 為每個應用程式與更新完成建置、測試並發佈到 Intune。團隊只需檢視結果,裝置就能保持在最新狀態,無需手動撰寫指令碼。


分享
RSS 摘要訂閱

常見問題

MSI 與 EXE 安裝程式有什麼差別?
對於軟體部署而言,MSI 還是 EXE 較好?
EXE 安裝程式可以包含 MSI 嗎?
Intune 可以將 EXE 部署為企業營運應用程式嗎?
可以將 EXE 安裝程式轉換成 MSI 嗎?
如何為 Microsoft Intune 封裝 MSI 和 EXE 應用程式?

相關內容

A man typing on a computer in an office.
代理式應用程式封裝

什麼是 AI 應用程式封裝?代理式封裝如何運作

深入了解
A man working on a computer with code on-screen in an office.
代理式應用程式封裝

如何執行 msiexec 靜默安裝:命令與參數

Two coworkers typing code on their computers.
代理式應用程式封裝

靜默安裝 EXE:如何找到並使用正確的參數

A person working on a computer in an office.
代理式應用程式封裝

如何使用 Intune 部署 WinGet 應用程式:4 種有效方法

查看所有部落格