MSI形式のインストーラーってEXE形式と何が違う?メリットは?

MSI形式のインストーラーってEXE形式と何が違う?メリットは?。

Windowsでソフトウェアをインストールするときに、インストーラーファイルの拡張子が「.msi」の時がありますが、MSI形式のインストーラーってEXE形式と何か違いがあるのか気になっている方もいらっしゃるのではないでしょうか。

そこでここでは、MSI形式インストーラーの特徴やEXE形式と違い、MSI形式のインストーラーをコマンド操作で実行する方法を解説します。

MSI形式インストーラーとは

MSI形式(Microsoft Installer Package)は、Microsoftが開発したインストーラー形式で、Windowsの標準的なインストールパッケージの一つです。

インストーラーの形式としてはEXE形式も一般的ですが、MSI形式のインストーラーはEXE形式に比べてソフトウェアのインストールや修復、更新、アンインストールを効率的に行えるようになっています。

たとえば、MSI形式のインストーラーはコマンドラインやスクリプトを使った自動インストール(サイレントインストール)に対応していることから、企業などの組織でたくさんのパソコンにソフトウェアをインストールしたいときに、MSI形式のインストーラーが使えると便利です。

MSI形式インストーラーのコマンド操作

EXE形式のインストーラーの中には、コマンドでのインストールに対応している場合もありますが、インストーラーによってコマンドの実行方法はまちまちですが、MSI形式のインストーラーは、インストールやアンインストール時のコマンド操作が決まっています。

コマンドでインストール

たとえば、MSI形式インストーラー「C:\example.msi」を使って、コマンド操作でソフトをインストールするときは、以下のようにコマンドを実行します。

> msiexec.exe /i "C:\example.msi"

GUI画面を一切表示させずにサイレントインストール(無人インストール)したいときは、以下のようにオプションを付けてコマンドを実行します。

> msiexec.exe /i "C:\example.msi" /qn

コマンドでアンインストール

MSI形式のインストーラーを使ってインストールされたソフトをアンインストールしたいときは、以下のようにコマンドを実行します。以下のコマンドでは例として「LibreOffice」をアンインストールしています。

PS> $apps = Get-CimInstance win32_product | where {$_.name -eq "LibreOffice"}
PS> msiexec /x $apps.IdentifyingNumber /quiet /norestart

なお、msiexecコマンドには上に挙げた以外にもさまざまなオプションが用意されています。詳しくは以下のMicrosoftの公式ページをご参照ください。

msiexec | Microsoft Learn

あとがき

MSI形式は、企業や組織でのソフトウェアをコマンドを使って効率よくインストールしたいときにとても役立ちます。ご活用あれ。