Instmsi.exe
Instmsi.exe は、Windows インストーラー 2.0 およびそれ以前のバージョンの Windows インストーラーをインストールするための再頒布可能パッケージです。 Windows インストーラー 3.0 以降のバージョンの再頒布可能パッケージについては、「Windows インストーラー再頒布可能ファイル」を参照してください。
オペレーティング システムに付属していた Windows インストーラーのバージョンの詳細については、「Windows インストーラーのリリース バージョン」を参照してください。
一部の再頒布可能ファイルは、オペレーティング システムの特定のバージョンでは実行しないでください。 次の表で、どの Instmsi がどのオペレーティング システムで互換性があるかについて説明します。
Instmsi.exe が以下のバージョンの Windows インストーラーをインストールする場合 | Instmsi.exe を実行できるオペレーティング システム | Instmsi.exe を実行してはいけないオペレーティング システム |
---|---|---|
Windows インストーラー バージョン 1.0 | Windows 95、Windows 98、Windows NT 4.0+SP3 | Windows Me、Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 |
Windows インストーラー バージョン 1.1 | Windows 95、Windows 98、Windows NT 4.0+SP3 | Windows Me、Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 |
Windows インストーラー バージョン 1.2 | Windows 95、Windows 98、Windows Me、Windows NT 4.0+SP3 | Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 |
Windows インストーラー バージョン 2.0 | Windows 95、Windows 98、Windows Me、Windows NT 4.0+SP6、Windows 2000 | Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008 |
たとえば、Windows インストーラー バージョン 1.1 を再配布するアプリケーションでは、再頒布可能パッケージを実行する前に、オペレーティング システムが Windows NT 4.0 SP3 または Windows 98/95 であることをチェックする必要があります。 再頒布可能パッケージを使用するアプリケーションでは、ANSI バージョンの Windows インストーラーが Windows 98/95 にインストールされていること、および Unicode バージョンが Windows NT または Windows 2000 にインストールされていることも保証する必要があります。 一部のアプリケーションでは、Unicode バージョンの名前が InstMsiW に変更されることに注意してください。
構文
instmsi の "オプション"
コマンド ライン オプション
コマンド ライン オプションでは、大文字と小文字は区別されません。
オプション | 説明 |
---|---|
/q | ブートストラップ アプリケーションの一部として Windows インストーラーを再配布するアプリケーションで使用します。 UI はユーザーに表示されません。 ブートストラップ アプリケーションでは、戻りコードをチェックして、Windows インストーラーのインストールを完了するために再起動が必要かどうかを判断する必要があります。 |
/t | デバッグ目的でのみ使用します。 |
/c:"msiinst /delayreboot" | 遅延再起動オプション。 インストール時に使用中のファイルを置き換える必要があった場合でも、Instmsi がユーザーに再起動を求めないようにします。 Instmsi がこのオプションを使用して呼び出されると、使用中のファイルを置き換える必要があった場合は、ERROR_SUCCESS_REBOOT_REQUIRED が返されます。 使用中のファイルを置き換える必要がなかった場合は、ERROR_SUCCESS が返されます。 Windows インストーラー 2.0 以降に Instmsi で使用できます。 遅延再起動の詳細については、「解説」セクションを参照してください。 |
/c:"msiinst /delayrebootq" | 遅延再起動オプションのサイレント バージョン。 UI はユーザーに表示されません。 それ以外の動作は前のオプションと同じです。 Windows インストーラー 2.0 以降に Instmsi で使用できます。 遅延再起動の詳細については、「解説」セクションを参照してください。 |
/? | ヘルプを表示します。 |
解説
Instmsi.exe を使用して Windows インストーラーを別のアプリケーションと一緒にインストールするアプリケーションのブートストラップで、追加のシステム再起動が必要になる場合があります。 これは、アプリケーションのインストールに必要な再起動に加えて、追加の再起動になる可能性があります。
遅延再起動オプションは、使用中のファイルをインストールするセットアップ アプリケーションで Instmsi.exe を使用することで生じる追加の再起動をなくしたいセットアップ開発者にのみお勧めします。
開発者は、遅延再起動オプションを使用するために、セットアップ アプリケーションで次の操作を行う必要があります。 このオプションは、バージョン 2.0 より前のバージョンの Windows インストーラーをインストールする Instmsi.exe バージョンでは使用できません。
遅延再起動オプションを使用するには、次のようにします
Instmsi.exe を遅延再起動コマンド ライン オプションのいずれかを指定して呼び出します。
ERROR_SUCCESS または ERROR_SUCCESS_REBOOT_REQUIRED の戻り値を、成功を意味するものとして扱います。
新しくインストールされた Windows インストーラー バイナリを含むフォルダーへのパスを、次の InstallerLocation 値から取得します。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer
この値は REG_SZ 型です。
手順 3 で取得したパスに現在のディレクトリを設定します。
アプリケーションのパッケージで Msiexec を呼び出し、アプリケーションに固有の他のセットアップ コードを実行します。 セットアップ アプリケーションで MsiInstallProduct を使用する場合、アプリケーションは手順 3 で取得した場所から MSI.DLL を読み込む必要があります。
Note
手順 3 で取得した場所にある新しい MSI.DLL で LoadLibrary を呼び出すアプリケーションでは、古いバージョンの MSI.DLL が既にプロセス内に読み込まれていないことを保証する必要があります。 プロセス内で古いバージョンの MSI.DLL が読み込まれていた場合は、新しい MSI.DLL に対する LoadLibrary 呼び出しの前に、プロセスのアドレス空間からアンロードする必要があります。
手順 (5) で再起動が必要なく、手順 (1) で Instmsi.exe から ERROR_SUCCESS_REBOOT_REQUIRED が返された場合は、システム上の Windows インストーラー バイナリの設定を完了するためにユーザーに再起動を促します。 ただし、手順 (5) で再起動が発生した場合は、追加の手順は必要ありません。
Instmsi.exe は、Windows インストーラー開発者向けの Windows SDK コンポーネント内に用意されています。
関連トピック
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示