Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

Adobe Readerのバージョンをリモートから確認する

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2008/01/11
対象ソフトウェア
Adobe Reader 6/7/8
PDF標準ビューアのAdobe Readerは、しばしば見つかる脆弱性を解消するためにアップグレードしなければならないことがある。
最新バージョンか否かはGUIで確認できるものの、対話的操作が必要なため、複数のPCが対象の場合は現実的ではない。
リモートからレジストリをアクセスできるツールを用いて、Adobe Readerの情報が格納されたレジストリ・エントリを調べれば、バージョン番号をリモートから把握できる。

解説

 PDF文書の標準ビューアであるアドビシステムズのAdobe Reader(以前はAcrobat Reader)には、Windows OSなどと同様、しばしばセキュリティ上の脆弱性が発見される(実際に脆弱性が悪用され、悪意のあるコードを仕込んだPDFファイルが流布したこともある)。そのたびにアドビシステムズが提供する更新版Adobe Readerにアップグレードして、脆弱性を解消しなければならない。アップグレードが必要か否かは、例えば「Ver. 8.1.0以前に脆弱性がある」といった具合に、Adobe Readerのバージョンで判断するのが一般的だ。したがってインストール済みのAdobe Readerのバージョンを確認する必要がある。

 直接Adobe Readerを起動して利用できる場合は、一般的なWindowsアプリケーションと同様にGUIで確認可能で、[ヘルプ]メニューの[Adobe Reader X について](Xにはメジャー・バージョンが入る)をクリックすればバージョン番号が表示される。

Adobe Readerのバージョン表示
Adobe Reader 8を起動して[ヘルプ]−[Adobe Reader 8 について]をクリックしたところ。簡単だが対話的操作が必要なため、複数PCのバージョンを集中的に管理するには適していない。
Ver. 8.1.1であることが分かる。

 しかし、この方法では対話的操作が必要なため、複数のPCでバージョンを確認するには非常に手間がかかる。多数のPCを抱える企業などの組織で、管理者が集中的に複数PCのバージョンを管理するには、現実的な手段とはいえない。

 このような場合は、リモートからWindowsのレジストリにアクセスしてAdobe Readerのバージョンを取得すればよい。Adobe Readerはインストール時やパッチ適用時にバージョン情報をレジストリに記録するので、これを読み出すことでバージョンを把握できる。本稿では過去のAdobe Readerも含めて、そのバージョンを確認するためのレジストリ・エントリや値について紹介する。リモートからレジストリをアクセスするツールを併用すれば、複数PCから自動的にAdobe Readerのバージョンを取得できる。そのサンプル・バッチ・ファイルも提供する。

操作方法

 リモートからAdobe Readerのバージョンを確認するには、以下で説明するレジストリ・エントリの内容をリモートから取得する手段が必要となる。それには、例えばWindowsのコマンドライン・ツールである「reg query」コマンドが利用できる。regコマンドの使い方についてはTIPS「コマンド・プロンプトでレジストリを操作する」を参照していただきたい。また資産管理ツールもレジストリをリモートから参照できる機能を備えていることが多いので確認するとよいだろう。

Adobe Readerのバージョン番号を格納したレジストリ・エントリ

 レジストリにおけるAdobe Readerのバージョン番号の格納場所(キー)や格納形式は、そのメジャー・バージョンによって異なる。つまりバージョンによって確認方法も変わってしまうので注意が必要だ。以下では、執筆時点でよく利用されていると思われるAdobe Reader 6/7/8について、それぞれ説明する。

 なお、以下で説明するレジストリ・エントリには、対象PCの管理者のアカウントでしかアクセスできない。またリモートからレジストリを参照するには、対象PCでリモート・レジストリ・サービスが開始されている必要もある。このサービスはWindows 2000/Windows XP/Windows Server 2003ではデフォルトで自動的に起動するが、Windows Vistaではデフォルトで停止しているので注意してほしい。

■Adobe Reader 6の場合
  Adobe Reader 6では、たとえ同じバージョンであっても、インストールに利用したインストール・パッケージによってレジストリ中の格納場所や格納方式が異なる。これは、フル・インストール・パッケージからインストール(アップグレード)した場合とパッチを適用した場合に分類される。

項目 内容
キー HKEY_LOCAL_MACHINE のSOFTWARE\Adobe\Acrobat Reader\6.0\Installer
名前 VersionMax
種類 REG_DWORD
データ バージョン番号の1桁目(=「6」)
名前 VersionMin
種類 REG_DWORD
データ バージョン番号の3桁目(「6.0.x」の「x」)
Adobe Reader 6のバージョン番号が格納されているレジストリ・エントリ(フル・インストール・パッケージの場合)
バージョン番号の1桁目と3桁目が、それぞれVersionMaxとVersionMinに格納されている(VersionMax/VersionMinが存在しない場合はVer. 6.0.0である)。なお2桁目は「0」固定である(Ver. 6.0.0〜7.0.6までしかないため)。パッチを適用した場合、これらは更新されず、古いバージョン番号が残ってしまう。そのため、必ず下表のパッチ適用時のバージョンについても確認する必要がある。

項目 内容
ベースとなるキー HKEY_LOCAL_MACHINE のSOFTWARE\Adobe\Acrobat Reader\6.0
サブ・キー インストール済みのバージョン
601Update 6.0.1
602Update 6.0.2
603Update 6.0.3
604Update 6.0.4
605Update 6.0.5
606Update 6.0.6
Adobe Reader 6のバージョン番号が格納されているレジストリ・エントリ(パッチの場合)
Adobe Reader 6にパッチが適用されてバージョンが上がるたびに、これらのサブ・キーが追加される。つまり、見つかったサブ・キーで最も大きなバージョン番号がインストール済みのバージョンを表すことになる。ただし、フル・インストール・パッケージからインストールした場合、これらのキーは作成されず、正しいバージョンを表さないことがある。必ず上表のフル・インストール・パッケージ使用時のバージョンについても確認すること。

 これらの方法で確認した結果、複数のバージョン番号が検出されたら、その中で最も大きなバージョンがインストール済みと判断すればよい。

 もっとも、細かいバージョンまで調べる必要はないかもしれない。なぜなら、すでにAdobe Reader 6のサポートは切れており、今後新たな脆弱性が発覚しても更新される見込みもなく、上位バージョンへのアップグレードが推奨されているためだ。もしAdobe Reader 6のインストールが確認されたら、Ver. 6の細かいバージョンを調べるよりアップグレードの計画を検討した方がよいだろう。

■Adobe Reader 7の場合
  Adobe Reader 7では、Ver. 6より簡単にレジストリからバージョン番号を把握できる。

項目 内容
キー HKEY_LOCAL_MACHINE のSOFTWARE\Adobe\Acrobat Reader\7.0\Installer
名前 VersionMax
種類 REG_DWORD
データ バージョン番号の1桁目(=「7」)
名前 VersionMin
種類 REG_DWORD
データ バージョン番号の3桁目(「7.0.x」の「x」)
Adobe Reader 7のバージョン番号が格納されているレジストリ・エントリ
バージョン番号の1桁目と3桁目が、それぞれVersionMaxとVersionMinに格納されている。Ver. 6のようにインストール・パッケージによる差異はない。なお2桁目は「0」固定である(Ver. 7.0.0〜7.0.9までしかないため)。

 例えばAdobe Reader 7.0.9の場合、上表のVersionMaxには「7」、VersionMinには「9」というデータがそれぞれ格納されている。

■Adobe Reader 8の場合
  Adobe Reader 8ではVer. 7と比べ、バージョン番号の格納形式が若干異なる。

項目 内容
キー HKEY_LOCAL_MACHINE のSOFTWARE\Adobe\Acrobat Reader\8.0\Installer
名前 VersionMax
種類 REG_DWORD
データ バージョン番号の1桁目と2桁目
名前 VersionMin
種類 REG_DWORD
データ バージョン番号の3桁目
Adobe Reader 8のバージョン番号が格納されているレジストリ・エントリ
VersionMax/VersionMinという値が使われている点はVer. 7と同じだが、格納形式が異なる。詳細は下表を参照していただきたい。

Adobe Readerのバージョン VersionMax VersionMin
8.0.0 0x00000008 0x00000000
8.1.0 0x00080001 0x00000000
8.1.1 0x00080001 0x00010000
Adobe Reader 8におけるバージョン番号の格納形式
バージョン番号の1桁目と2桁目が、16進数表記のVersionMaxの上位4桁と下位4桁にそれぞれ格納されている。また3桁目はVersionMinの上位4桁に格納されている。Ver. 8.0.0のVersionMaxのみ例外的にバージョン番号の2桁目が省略されているので注意。

 執筆時点で最新のAdobe Reader 8.1.1がインストール済みか否かは、上表のVersionMaxに「0x00080001」、VersionMinに「0x00010000」というデータがそれぞれ格納されているか確認すればよい。

リモートPCのAdobe Readerのバージョンを確認するバッチ・ファイル

 ここまで説明した確認方法に従って、実際にリモートPCのAdobe Readerのバージョンを調べられるバッチ・ファイルを用意してみた。エラー処理も実装したが、実用ではなくあくまでもサンプルとして扱っていただきたい。

 このZIPファイルからgetadbrdver.txtというファイルを展開したら、まず拡張子を.cmdに変更してから、管理者権限で以下のように実行する。

getadbrdver コンピュータ名
getadbrdver.cmdのコマンドライン
「コンピュータ名」には、調査対象PCのコンピュータ名あるいはIPアドレスを指定する。UNCパスを表す「\\」は省くこと。

 正常に実行できると、以下のようにAdobe Reader 6/7/8のインストール状況が表示される。

コンピュータ ClientPC01 のレジストリに接続しています……

Adobe Reader 6の確認中……
Adobe Reader 6はインストールされていません。
Adobe Reader 7の確認中……
Adobe Reader 7はインストールされていません。
Adobe Reader 8の確認中……
Adobe Reader 8.1.1 がインストール済みです。
getadbrdver.cmdの出力例
これはAdobe Reader 8.1.1が検出された例。Ver. 7/8については、このようにマイナー・バージョンも確認できるが、Ver. 6についてはインストールの有無のみ表示される。

 getadbrdver.cmdでは前述のreg.exeというツールを利用している。そのためWindows 2000では、あらかじめサポート・ツールをインストールしてreg.exeを利用可能にしておく必要がある。その詳細はTIPS「コマンド・プロンプトでレジストリを操作する」を参照していただきたい。

 Adobe Readerのバージョンを確認した結果、アップグレードが必要になった場合は、TIPS「Adobe Readerの再配布版(スタンドアロン・インストール版)を入手する」や「Adobe Readerをサイレント・インストールする」を参照していただきたい。リモートからのAdobe Reader展開の一助になるだろう。End of Article

  関連リンク
  Adobe Readerのダウンロード(アドビシステムズ)
  Adobe Reader for Windows のダウンロード可能ファイル(アドビシステムズ)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間