32bit版と64bit版の2つのインストーラーと、インストールを実行するためのバッチファイルをzipファイルとしてひとつのファイルとします。
注意: この設定手順は32bitアプリケーションであるWindows向けKACEエージェント(v13.2まで)を前提としています。
管理対象インストールに関連付けるソフトウェアアイテムにzipファイルを割り当てるとデバイスに配信された際自動的に解凍されますので、
バッチファイルを実行するコマンドを実行することで、デバイスに適したインストーラを使用しインストールが実施されます。
バッチファイルの内容は下記のとおりとなります。
ファイル名 : 例 mgdinstall.cmd
--------------------------------------------------------------------------------------------------------------------
@echo off
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" goto x64flag
if "%PROCESSOR_ARCHITEW6432%"=="" goto x86flag
goto end
:x64flag
installer-64.exe
goto end
:x86flag
installer-32.exe
goto end
:end--------------------------------------------------------------------------------------------------------------------
- このバッチファイルに必要な変更を加え保存します。(
installer-32.exe.exe や installer-64.exe の箇所を実際のインストーラーファイル名 あるいは msiexecコマンドラインなどに置き換える) - 3つのファイル(32bit版と64bit版のインストーラおよび起動用バッチファイル mgdinstall.cmd ) を1つのzipファイルとして圧縮します。
- この際、1.における3つのファイルが入っているフォルダをzipにするのではなく、3つのファイル自体を選択して1つのzipファイルに圧縮します。
- ソフトウェアインベントリアイテムに上記のzipファイルを割り当てます。
- 管理対象インストールに上記のソフトウェアを割り当てます。
- デフォルトのインストールのオーバーライド をチェックします。
- 先頭に追加しない msiexec.exe をチェックします。
- 完全なコマンドライン にバッチファイル名を入力します。例: mgdinstall.cmd
- 対象のデバイスなど他の設定を行い、管理対象インストールを保存します。
上記の管理対象インストールを実行すると、デバイスのアーキテクチャに合ったインストーラを使用しインストールが実行されます。
補足
基本的に(32bit/64bitで)異なるインストーラーを使用するケースでは異なるアプリケーションのインストールが行われる事、およびアーキテクチャ別のインストーラーの集約は転送容量の不要な増大を招く観点から、上述の設定は出来るだけ行わないことをお勧めします。
一般にぞれぞれのアーキテクチャ向けのインストーラーでインストールを行うと、ソフトウェアインベントリ上で32bitと64bitで異なるソフトウェアアイテムが作成されます。
実際には HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall および HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall 内のキーのDisplayName を確認します。
例:
- Sample Software : installer-32.exe を使用し32bit Windows上/64bitのWindows上にインストールした結果… 32-bit/x86 用
- Sample Software (x64) : installer-64.exe を使用し64bitのWindows上にインストールした結果 … 64-bit/x64用
管理対象インストール上で 1つのソフトウェアアイテムを利用するように構成しても、インストール結果としてソフトウェアアイテムが2通り作られる状況ではデバイスがそのソフトウェアアイテムに関連付けられる保証がありません。インストールが正しく行われても次のインベントリ収集時にインストールと紐づけたソフトウェアアイテムが検出されず(インストールされていないものとして)何度でもインストールが走ってしまう状況が生じ得ます。
この場合32bit, 64bit別々のソフトウェアアイテムで別々の管理対象インストールを構成することが通常の方法となります。
共通の1つのソフトウェアアイテムを用意することも回避策の1つとなります。
手動作成したソフトウェアアイテムにたいして判定を共通化できるカスタムインベントリルールを設定することで実現できます。
ただし、適切なルールを設定できるものかどうかはソフトウェアの性質に依存します。
さらに近年の Windows では64Bit版のOS利用が進んでいるためプラットフォーム(OS環境)による切り替えの判断よりも、特定のアプリケーションの配布時に アプリケーションの 32bit版、64bit版が両方が提供されている場合、どちらにするかを検討することの方が多いと考えられます。