ベンダーが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 などです。管理者は、コマンドラインの公開プロパティまたは変換(.mst の形式)を使用して、パッケージを編集せずにインストールをカスタマイズできますファイル)。スイッチと終了コードの完全な一覧については、MSIサイレントインストールガイドをご覧ください。
MSI では、ロールバックはデフォルトで有効になっているため、インストールに失敗した場合、Windows Installer は加えられた変更を元に戻します。ただし、パッケージ作成者はロールバックを無効にすることができ、カスタムアクションについても、パッケージ作成者がそのためのロールバックステップを追加した場合にのみロールバックされます。
EXEインストーラーとは何ですか?
EXEは、.exeがWindowsプログラムの拡張子であるファイル形式の1つであり、その動作は作成に使用されたツールによって異なります。一般的な作成ツールには、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) |
カスタマイズ | コマンドラインのパブリックプロパティ、または transform (.mst) | ベンダーが組み込んだオプション次第です。InstallShield InstallScriptセットアップでは、記録された応答ファイルが必要です |
インストールに失敗しました | ロールバックはデフォルトで有効になっています(作成者が無効にすることもできます)。 | 使用したビルドツールによって異なります |
サイレントアンインストール | ファイルまたは製品コードを指定して msiexec /x | ベンダーのアンインストーラーと、その独自のサイレントスイッチ |
Intune アプリの種類 | 業務アプリ(コマンドライン引数1つ)または Win32 アプリ | Win32アプリのみ |
Intune 検出ルール | MSI製品コードルールを利用できます | ファイル、レジストリ、またはスクリプトのルール |
前提条件とバンドル | パッケージごとに1つの製品(Windows Installer 4.5+ ではパッケージを連結可能) | ブートストラッパー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 の各インストーラーエントリには、msi、burn、inno、nullsoft などの InstallerType が記録されています。burn エントリであれば、これはパッケージを連結する WiX バンドルであり、MSI を使用している可能性があることを意味します。一方、Inno と Nullsoft のエントリは Windows Installer を使用しません。
アーカイブツールでEXEを開きます: 多くのラッパーEXEは7-Zipなどのツールで開けるため、.msiを確認できますファイルの中身です。
EXE の中に MSI が含まれている場合は、自分で MSI を抽出するのではなく、ベンダーのドキュメントとパススルースイッチに従うのがよいでしょう。MSI を抽出すると、ラッパーに含まれる前提条件や設定をスキップしてしまう可能性があるため、設定前のテストは常に重要です。
MSI インストーラーと EXE インストーラーを Microsoft Intune で設定する方法
Microsoft Intune を使ってアプリを設定する場合、MSI インストーラーと EXE インストーラーでは方法が異なります。Intune は対話型インストールをサポートしていないため、どの形式を使用する場合でも、サイレント実行できることを確認してください。
MSI の設定
MSI を設定する場合、選択肢は 2 つあります。Windows の基幹業務 (LOB) アプリではアプリを直接取り込めますが、使用できるコマンドライン引数は 1 つだけです。一方、Win32 アプリ管理ではさらに多くの引数を追加できます。Win32 アプリでは、MSI を .intunewinファイルに Microsoft Win32 Content Prep Tool でラップします。これにより、Intune 用に MSI の詳細情報が読み取られ、製品コードによって検出できるようになります。
この2つを混在させる際は注意してください。Windows Autopilot の登録中にLOBアプリとWin32アプリのインストールを組み合わせると失敗する可能性があります。これは、両方が同時に Trusted Installer service を使用するためです(Autopilot device preparation では混在をサポートしています)。そのため、Microsoft は、特に複数ファイルのインストーラーでは、Win32 アプリの種類のみを使用することを検討するよう推奨しています。
EXEの設定
EXEインストーラーは業務アプリとしては受け付けられないため、すべてのEXEはWin32アプリとして登録されます。インストーラーは .intunewinファイルにラップされ、その後 Intune でアプリを追加する際に、サイレントインストールコマンド、アンインストールコマンド、および検出ルールを入力します。検出できる製品コードがない点に注意してください。そのため、ファイル、レジストリ、またはスクリプトの検出ルールを使用する必要があります。
EXE は再起動が必要な場合にも異なるコードを返すため、戻りコードを設定する際はその点に注意してください。たとえば、Inno Setup は /RESTARTEXITCODE を設定しない限り、再起動が必要かどうかにかかわらず 0 を返します。
MSI と EXE、設定するならどちらですか?
MSI インストーラーと EXE インストーラーの違いを踏まえると、どちらが自社に最適なのか気になっているかもしれません。答えはベンダーが提供するオプションによって異なりますが、選択肢を評価する際は次の重要なポイントを押さえておくとよいでしょう。
ベンダーは両方を提供しています: MSIとEXEの両方が利用可能な場合は、まずMSIから始めてください。これにより、広範な調査をしなくても、標準のサイレントスイッチ、詳細ログ、アンインストールと検出に使える製品コードを利用できます。
ベンダーが EXE を推奨している場合: ベンダーが EXE を使うよう勧めているなら、通常は MSI 単体では含まれない前提条件やコンポーネントをインストールすることを意味します。ただし、MSI と同様の制御を維持できるように、msiexec オプションを引き渡せるかどうかは必ず確認してください。
EXE しか利用できない場合: EXE しか利用できない場合は、まずそれを作成したツールを特定し、サイレントスイッチを確認する必要があります。
このEXEにはサイレントオプションがありません。サイレントインストールオプションは重要なため、EXEにそれがない場合は、まずベンダーにMSI版があるか確認してください。それも難しい場合は、インストーラーによる変更をキャプチャして新しいパッケージにまとめることで、EXEを再パッケージ化できます。ただし、再パッケージ化したインストーラーは、アップデートのたびに保守が難しくなります。詳しくは、アプリケーションパッケージングとはをご覧ください。
Intuneで設定する場合: MSIは、コマンドライン引数1つで必要な内容を満たせる場合にのみ、LOBアプリとして追加できることを覚えておいてください。それ以上必要な場合は、両方の形式でWin32を使用することをおすすめします。
どちらを選ぶ場合でも、アプリケーションをデバイス全体に展開する前に、必ずすべてをテストしてください。これにはインストール、検出、アンインストール、終了コードが含まれます。これらはクリーンなデバイスでテストし、新しいバージョンごとに繰り返す必要があります。
なぜ今でもすべてのインストーラーにパッケージ化作業が必要なのか
EXEインストーラーでもMSIインストーラーでも、設定できるようにする前に、まだいくつか作業が必要です。MSIを使えば調査の手間は省けますが、それでも各アプリでインストールコマンドの確認、検出ルールの設定、テスト、パッケージ化などが必要です。そして、アプリの新しいバージョンが出るたびに、そのプロセスを最初からやり直すことになります。
幸い、適切なツールを使えばこの作業を自動化できるため、単調な手作業でのパッケージ化に費やしていたはずの時間と労力を、IT チームは節約できます。そこで登場するのが Splashtop Agentic Packr です。これは、より強力なガバナンスとより少ない手作業で、チームによるアプリケーションのパッケージ化、検証、設定を支援する、AI を活用したアプリケーションパッケージングツールです。
Splashtop Agentic Packr でできること:
インストーラーを分析し、インストールロジックを含むPSADTパッケージを作成してください。
各アプリケーションに対して検出ルールを作成します。
各設定パッケージをクリーンな仮想マシンでテストし、レビュー用のQAスコアカードとログとともにセキュリティスキャンを実行することで、管理者は公開前に結果を確認できます。
Intune の設定パッケージを作成して Intune に公開するか、SCCM または手動で Windows デバイスに設定するためのバンドルを作成します。
新しいアプリのバージョンを自動的に検出し、更新されたパッケージを作成します。
Splashtop AEM(自律型エンドポイント管理)は、Splashtop Agentic Packr が構築するパッケージに加えて、エンドポイント全体でスクリプトやタスクを実行する方法を追加します。
アプリごとの調査なしで、MSIアプリとEXEアプリをIntune向けにパッケージ化
ベンダーが MSI または EXE インストーラーを選択すると、その判断によって、インストール前にアプリにどれだけの調査が必要かが決まります。MSI は必要な調査が少なく予測しやすい一方で、EXE インストーラーはより高い柔軟性を提供します。それでもなお、どのアプリも、どのアップデートも、安全にユーザーへ提供する前にパッケージ化とテストが必要になります。
Splashtop Agentic Packrを使えば、インストーラーをテスト済みのIntuneパッケージに変換できます。Agentic Packrは、インストーラーの読み取り、検出ルールの作成、テストを含むアプリのパッケージ化プロセスを自動化し、手動のスクリプト作成やパッケージ化の専門知識を必要としません。これにより、ITチームが管理を維持したまま、パッケージ化を高速化できます。
Splashtop Agentic Packrについて詳しく知りたいですか?アプリやアップデートを自信を持って今すぐ展開できるよう、どのように役立つかをご覧ください。





