32bit版と64bit版の2つのインストーラーと、インストールを実行するためのバッチファイルをzipファイルとしてひとつのファイルとします。
管理対象インストールに関連付けるソフトウェアアイテムにzipファイルを割り当てるとデバイスに配信された際自動的に解凍されますので、
バッチファイルを実行するコマンドを実行することで、デバイスに適したインストーラを使用しインストールが実施されます。
バッチファイルの内容は下記のとおりとなまります。
ファイル名 : 例 install.cmd
--------------------------------------------------------------------------------------------------------------------
@echo off
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" goto x64flag
if "%PROCESSOR_ARCHITEW6432%"=="" goto x86flag
goto end
:x64flag
install-64.exe
goto end
:x86flag
install-32.exe
goto end
:end
--------------------------------------------------------------------------------------------------------------------
- このバッチファイルに必要な変更を加え保存します。(install-x86.exeやinstall-x64.exeなどのインストーラのファイル名を実際のファイル名,コマンドラインなど)
- 3つのファイル(32bit版と64bit版のインストーラおよびinstall.cmd)を1つのzipファイルとして圧縮します。
- この際、1.の3ファイルが入っているフォルダをzipにするのではなく、3つのファイル自体を1つのzipファイルに圧縮します。
- ソフトウェアインベントリアイテムに上記のzipファイルを割り当てます。
- 管理対象インストールに上記のソフトウェアを割り当てます。
- デフォルトのインストールのオーバーライド をチェックします。
- 先頭に追加しない msiexec.exe をチェックします。
- 完全なコマンドライン にバッチファイル名を入力します。例: install.cmd
- 対象のデバイスなど他の設定を行い、管理対象インストールを保存します。
上記の管理対象インストールを実行すると、デバイスのアーキテクチャに合ったインストーラを使用しインストールが実行されます。
補足
基本的に(32bit/64bitで)異なるインストーラーを使用するケースでは異なるアプリケーションのインストールが行われる事、および
アーキテクチャ別のインストーラーの集約は転送容量の不要な増大を招く観点から、上記の設定は出来るだけ行わないことをお勧めします。
一般にぞれぞれのアーキテクチャ向けのインストーラーでインストールを行うと、インストーラーは32bitと64bitで異なるソフトウェアアイテムを作成します。
- Sample Software : install-32.exe を使用し32bit Windows上/64bitのWindows上にインストールした結果… 32-bit/x86 用
- Sample Software (64-bit) : install-64.exe を使用し64bitのWindows上にインストールした結果 … 64-bit/x64用
例:
Oracle JRE 32bit Windowsインストーラー(jre-7u#-i586.exe)は1.(32-bit用) を作成します。
Oracle JRE 64bit Windowsインストーラー(jre-7u#-x64.exe)は2.(64-bit用) を作成します。
Adobe Flash Playerなどは x64専用 のバージョンがないため1.のみ作成します。
管理対象インストールでは1つのソフトウェアアイテムを使用するように構成しても、インストール結果としてソフトウェアアイテムが2通り作られる状況ではデバイスがそのソフトウェアアイテムに関連付けられる保証がありません。インストールは正しく行われてもインベントリで検出されず何度でもインストールが走ってしまう状況が生じ得ます。
この場合32bit, 64bit別々のソフトウェアアイテムで別々の管理対象インストールを構成することが通常の方法となります。
共通の1つのソフトウェアアイテムを用意できればこの問題は解決されます。
手動作成したソフトウェアアイテムにたいして判定を共通化できるカスタムインベントリルールを設定することで実現できます。
ただし、適切なルールを設定できるものかどうかはソフトウェアの性質に依存します。