ブートストラップ

現在は Windows インストーラーを使用しようとするすべてのインストールで、まずインストーラーがユーザーのコンピューターに存在するかどうかを確認し、存在しない場合は、ユーザーとコンピューターが Windows インストーラーをインストールする準備ができているかどうかを確認します。 セットアップ アプリケーション Instmsi.exe は、Windows インストーラーをインストールするためのすべてのロジックと機能を含む Windows インストーラー SDK で使用できます。 ただし、ブートストラップ アプリケーションがこのインストールを管理しなければなりません。

ブートストラップ アプリケーションは、最初に Windows インストーラーが現在インストールされているかどうかを確認する必要があります。 アプリケーションは、DllGetVersion を使用して現在インストールされている Windows インストーラーのバージョンを取得できます。 Windows インストーラーが現在インストールされていない場合、ブートストラップ アプリケーションはオペレーティング システムにクエリを行って、必要な Instmsi.exe のバージョンを調べる必要があります。 Windows インストーラーのインストールが開始されたら、ブートストラップ アプリケーションは、Instmsi.exe アプリケーションからのリターン コードを処理し、Windows インストーラーのインストール中に生じた再起動を処理する必要があります。 詳細については、「Windows インストーラーのバージョンの決定」を参照してください。

次の例では、Microsoft Office 2000 をインストールするセットアップ アプリケーションがユーザーのシステムを確認し、Windows インストーラーのインストールを構成する方法を示しています。 この例は特に Office 2000 をインストールするよう記述されているため、一般的な参照としてのみ使用してください。

ユーザーが Office 2000 CD-ROM を自分のコンピューターに挿入すると、Setup.exe は、ユーザーのニーズに応じて、メンテナンス モードを起動しようとするか、セットアップ アプリケーションを起動しようとするか、あるいは何もしません。 次のセクションでは、Office 2000 セットアップ アプリケーション (Setup.exe) がユーザーとそのコンピューターを認定し、コマンド ラインを構築し、Msiexec.exe アプリケーションを使用して Windows インストーラーをインストールする方法について説明します。

Office 2000 のインストール時に Setup.exe が Windows インストーラーをブートストラップする方法

  1. ユーザーは Office 2000 CD-ROM をコンピューターに挿入します。 Windows オペレーティング システムは、/autorun スイッチと Autorun.inf ファイルを使用して Setup.exe を開始します。 Autorun.inf ファイルは Office 2000 CD-ROM のルートにあり、次のセクションで構成されています。

    [Autorun]

    [Office Features]

    [Product Information]

    [ServicePack]。

    [Autorun] セクションには、Setup.exe アプリケーションを実行するコマンド ラインが含まれており、ディスクの表示に使用されるアイコンを実行し、CD-ROM のコンテキスト メニューに "インストール" オプションと "構成" オプションを追加するための情報が含まれています。

    [Office Features] セクションには、機能と機能名のペアの一覧が含まれています。

    [Product Information] セクションでは、アプリケーションの名前とバージョンが指定されています。

    [ServicePack] セクションを使用すると、ネットワーク管理者は必要最小限のサービス パック レベルを設定できます。 ネットワーク管理者はこのセクションを使用して、ローカル オペレーティング システムに必要なサービス パックがない場合に表示されるアラート メッセージのテキストを作成できます。

    Autorun.inf のサンプルを次に示します。

    [autorun] 
    OPEN=setup.EXE /AUTORUN /KEY:Software\Microsoft\Office\9.0\Common\General\InstallProductID
    ICON=setup.EXE,1
    shell\configure=&Configure
    shell\configure\command=setup.EXE
    shell\install=&Install
    shell\install\command=setup.EXE
    [OfficeFeatures]
    Feature1=ACCESSFiles
    Feature2=OfficeFiles
    Feature3=WORDFiles
    Feature4=EXCELFiles
    Feature5=PPTFiles
    [ProductInformation]
    DisplayName=Microsoft Office 9
    Version=9.0
    ProductCode={product guid}
    [ServicePack]
    MessageText="The operating system does not have a required service pack. Please download and install this from www.microsoft.com."
    SPLevel=3
    
  2. Setup.exe アプリケーションは、_MsiPromptForCD ミューテックスがあるかチェックします。 Windows インストーラーは、CD-ROM の挿入をユーザーに求めるときに、このミューテックスを作成します。 ミューテックスの存在は、Windows インストーラーが実行しているインストールが Office 2000 CD-ROM を要求したことを示します。 この場合、Setup.exe アプリケーションはすぐに終了し、Office 2000 のインストールを続行できます。 ミューテックスがない場合、Setup.exe アプリケーションは手順 3 に進み、Office 2000 がインストールされているかどうかを調べるためにレジストリ キーが評価されます。

  3. Setup.exe アプリケーションは、次の Office9 レジストリ キーの存在を確認します。

    HKCU/Software/Microsoft/Office/9.0/Common/General/InstallProductID

    このレジストリ キーが存在しない場合、Setup.exe アプリケーションは手順 6 に進み、オペレーティング システムをチェックして Office 2000 のインストールに適しているかどうかを判定します。

  4. Office 2000 レジストリ キーが存在する場合、Setup.exe アプリケーションは MsiQueryProductState を呼び出して現在のインストール状態を確認します。 InstallState_Default の戻り状態は、Office 2000 が既にインストールされていて、Setup.exe アプリケーションが手順 5 に進んでおり、Office 2000 がソースからの実行を確認されていることを示します。

    Office 2000 がインストールされていない場合、Setup.exe アプリケーションは手順 6 に進み、オペレーティング システムをチェックして Office 2000 のインストールに適しているかどうかを判定します。

  5. Setup.exe アプリケーションは、Autorun.inf ファイルの [OfficeFeatures] セクションの各機能に対して MsiQueryFeatureState を呼び出します。 これらの機能のいずれかが INSTALLSTATE_SOURCE を返す場合、これは機能がソースから実行されて Setup.exe アプリケーションは直ちに終了することを示します。

    どの機能も INSTALLSTATE_SOURCE を返さない場合、Setup.exe アプリケーションはインストーラー アプリケーション Msiexec.exe を起動し、終了する前に Windows インストーラーのメンテナンス モードを表示します。

  6. Setup.exe アプリケーションは、オペレーティング システムが Office 2000 のインストールに適しているかどうかを判定します。 Office 2000 をインストールするには Windows XP が必要です。 オペレーティング システムが Office 2000 の対象となるためにサービス パック更新を必要とする場合、Setup.exe アプリケーションは Autorun.inf ファイルで指定されたテキストを表示します。 オペレーティング システムが Office 2000 や Office 2000 のアップグレードの対象にならない場合は、Setup.exe アプリケーションにユーザーは続行できないことを示すメッセージが表示されます。

    オペレーティング システムが Office 2000 の対象となる場合、Setup.exe アプリケーションは手順 7 に進み、Windows インストーラーがユーザーのコンピューターにインストールされているかどうかを判定します。

  7. Windows インストーラーがユーザーのコンピューターに存在する場合、Setup.exe アプリケーションは Msiexec.exe アプリケーションを起動して、Office 2000 .msi ファイルを渡します。

    Windows インストーラーがローカル コンピューターにインストールされていない場合、Setup.exe アプリケーションは手順 8 に進み、オペレーティング システムが Windows インストーラーをインストールするのに適しているかどうかが判定されます。

  8. ローカル コンピューターが Windows インストーラーをインストールするのに適している場合、Setup.exe アプリケーションは、プラットフォーム用の正しいバージョンの Instmsi.exe インストーラー アプリケーションを実行します。 Setup.exe は "/q" コマンド ライン スイッチを渡すことでユーザー インターフェイスを抑制し、ユーザーがインストール構成オプションを変更できないようにすることができます。

  9. Setup.exe アプリケーションは、新しくインストールされた Msi.dll ファイルを読み込み、MsiInstallProduct 関数の呼び出しを実行してユーザーのアプリケーションをインストールします。

Setup.exe のコマンド ライン パラメーター

Setup.exe アプリケーションによって管理者とユーザーは、コマンド ライン オプションを Msiexec.exe アプリケーションに渡すことができます。 詳細については、「コマンド ライン オプション」を参照してください。 次の表に、 Setup.exe と共に使用できるコマンド オプションを示します。

オプション 使用法 説明
/autorun setup.exe /autorun 上記の Autorun.inf を実行します。
/a setup.exe /a 管理インストールを開始します。
/j [u|m]Packageor
[u|m]Package /t Transform List
または
[u|m]Package /g LanguageID
製品をアドバタイズします。 このオプションでは、コマンド ラインに入力されたプロパティ値が無視されます。 u 現在のユーザーにアドバタイズします。
m コンピューターのすべてのユーザーにアドバタイズします。
g 言語識別子
t 提供パッケージに変換を適用します。
/I setup.exe /I Office9.msi /t ProgramMgmt.mst Setup.exe がインストールする .msi ファイルを指定します。 /I オプションが含まれていない場合、Setup.exe は Office9.msi ファイルを使用します。
/o<property=value> setup.exe /o CDKEY=111111-1111 .msi ファイルのプロパティを設定します。 Setup.exe はこれらを msiexec に、書き込まれたとおりに渡します。
/q setup.exe /q インストールの UI レベルを設定します。 /q は UI なし (/qn は msiexec) /qb は基本 UI
/qr は縮小された UI。
/m# setup.exe /m4 Select agreements に従って複数のライセンスをサポートします。 このプロパティは、LV 証明書を書き込むための License Verification カスタム アクションで使用されます。 /m オプションの後に、許可されるロック解除の数を指定する必要があります。 /m オプションで指定された値は、Office9.msi ファイルで "M" プロパティとして設定する必要があります。 値が指定されていないが、/m オプションがセットアップで使用される場合は、値 0 を設定する必要があります。 /m オプションは、CD またはネットワークを使用した Select 顧客のサポートに必要です。
/settings setup.exe /settings mysettings.ini 管理者は、Office 2000 のセットアップ時に渡されるすべてのカスタマイズされた設定を含む.ini ファイルを指定できます。 以下の.ini ファイルの説明を参照してください。

.ini ファイルの使用

初期化ファイルを作成したほうが、長いコマンド ラインを作成するよりも簡単な場合があります。 /settings オプションを使用して、Setup.exe アプリケーションは指定した.ini ファイルを読み込んで、Msiexec.exe アプリケーションに渡すコマンド ラインを構築します。 コマンド ラインでサポートされているプロパティのみが、.ini ファイルでサポートされます。 プロパティまたは値が.ini ファイルとコマンド ラインの両方で見つかった場合、コマンド ライン設定は .ini ファイル設定をオーバーライドします。

.ini ファイルの形式は次のようになります。

[msi]

[mst]

[options]

[Display]

.ini ファイルの [msi] セクションは、インストール用のインストール パッケージへのパスを指定します。 これは、コマンド ラインの /I オプションに相当します。

.ini ファイルの [mst] セクションは、このインストールで使用される変換へのパスを指定します。 これは、コマンド ラインの /j オプションに相当します。 複数の変換がそれぞれ異なる行で、MST1 MST (N) を使用して示されます。 コマンド ラインに解析すると、.ini ファイル内のリストは左から右に変わります。 MST (N) タイトルに関連付けられている番号は、一意の識別子を維持するためにのみ存在し、プログラム的な意味がないことに注意してください。

[options] セクションではネットワーク管理者が .msi または .mst ファイル内のプロパティを設定およびオーバーライドできます。 .ini ファイルで設定されたオプションは、/o オプションを使用してコマンド ラインに追加されます。 オプション セクションの各オプションには、プロパティ名と値が必要です。

[Display] セクションは、セットアップ時に使用されるユーザー インターフェイス レベルを設定するために使用されます。 これは、コマンド ラインの /q オプションに相当します。 有効な値は none、basic、reduced、full です。

Sample .ini file

[MSI]

MSI=\\sourceshare\Office2000\Office2000.msi

[MST]

MST1=\\sourceshare\Office2000\trns1.mst

MST2=\\sourceshare\Office2000\trns2.mst

[Options]

PUBLICPROPERTY= あなたの値

[Display]

Display=None