Acorbat Readerの64bit版がグループポリシーでインストールエラー

 長らくうちの環境のAcrobat Readerは32bit版をグループポリシーのソフトウェアインストールを使って展開していました。アップデートに関しても都度MSIインストールパッケージを作成して展開する感じです。MSIパッケージの作成方法ですがだいぶ昔にネット上の情報をもとにやってきました。
 7-ZipAcrobat Readerのインストールファイル、今日現在ではAcroRdrDCx642300120143_ja_JP.exeを展開して中のファイルを抽出します。まずはその中のAcroPro.msiをmsiexecを使って管理インストール。これは実際にインストールせずにフォルダへの展開となります。

msiexec.exe /a AcroPro.msi

この時に、展開するフォルダ名を尋ねられるので、適当にD:\AcroRdrなど空いている場所を指定。
 次に同梱されていたAcroRdrDCx64Upd2300120143.mspを以下のように展開先に適用します。

msiexec /a D:\AcroRdr\AcroPro.msi /p AcroRdrDCx64Upd2300120143.msp

 最終的にD:\AcroRdr\AcroPro.msiがグループポリシーでインストール展開するMSIファイルで、フォルダごとネットワーク上の共有場所に置いての使用となります。
 グループポリシーでなく普通の方法でインストールしたAcorbat Readerもそろそろ32bit版から64bit版へアップデートされるようになって、グループポリシーで導入しているのも64bit版に移行しようとやってみました。
 32bit版と同様に上記方法でMSIファイルを抽出してMSPファイルを適用してインストールパッケージが完成したのですが、これをグループポリシーで展開しようとするとクライアント側のエラーでインストールされません。イベントログには、ID 10005で

Adobe Acrobat DC (64-bit) -- エラー 2602。  The File table entry 'Japanese83pv.txt' has no associated entry in the Media table.

と記録されています。
 最新版の問題かもと、こちらからたどれる過去のパッチを2021年ぐらいまでさかのぼってみても同様のエラーでインストールに失敗します。なにか情報はないかもとネットを調べると以下の書き込みがありました。対象のファイルは異なるのですが、同じような問題です。

www.reddit.com

 結局のところ64bit版をグループポリシーで展開するときの以前からの問題で解決されておらず32bit版ならいけるとのことです。
 いつかは64bit版に移行するようになるので、なにか別の方法を考えてみました。まずはパッチの当たっていない、まったく素のAcroPro.msiを使ってみたらどうだろうと、上記展開でMSPをあてる前のD:\AcroRdr\AcroPro.msiをグループポリシーに指定してみると、こちらはインストールできました。ただしバージョンが2021.001.20135で2021年2月現在のバージョンですので危なくて継続使用はできません。
 それではパッチファイルはグループポリシーでの展開をあきらめて、各端末でMSPファイルをmsiexecコマンドで適用すればいいと気づきました。
 こちらのページを参考に、以下のようなコマンドを実行します。オプションは例題そのままです。

msiexec.exe /p \\srv\share\AcroRdrDCx64Upd2300120143.msp /qb REINSTALLMODE="ecmus" REINSTALL="ALL"

 これで問題なく素のAcorbat Readerの64bit版環境に最新版のパッチが適用できました。今後はグループポリシーではなく、この方法でアップデートが出るたびに適用をしようと思います。

追記

 初回インストールのほうもグループポリシーによる配布はやめにして、以下のコマンドをマシンセットアップ時に実行することで導入する方向としました。デスクトップにアイコンを作成しない。EULAを表示しないなどのカスタマイズをしているので、msiとmstによるインストール、すなわちmsiexecを使ってのサイレントインストールとしています。

msiexec.exe /i \\srv\share\AcroPro.msi TRANSFORMS=\\srv\share\AcroPro.mst /passive /norestart

 その後のアップデートは、上記msiexec.exe /pコマンドで都度実施する感じです。