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

バイナリ・ファイルのバージョンを調べる

 

デジタルアドバンテージ
2003/07/19
 
対象OS
Windows 2000 Professional
Windows 2000 Server
Windows 2000 Advanced Server
Windows XP Home Edition
Windows XP Professional
Windows Server 2003
システムにインストールされているファイルの細かいバージョンを知りたい場合がある。
そのためにはエクスプローラでファイルの[プロパティ]情報を表示させるとよい。
Support Toolsに含まれるfileverというコマンドを使えば、コマンドラインで簡単に調査することができる。
 
解説

 Windows OS用の実行ファイル(.exeだけでなく.dllや.sys、.drvなど、各種システム・ファイルも含む)では、プログラムのバージョンやビルド番号、動作環境などに関する情報がファイルのヘッダ部分に記述されている。ファイルの名前や日付、サイズだけでは分からないような、内部的な細かいバージョン情報がここには記述されており、システムやアプリケーション・プログラムは、正しいバージョンのファイルの組み合わせでのみ正常に動作するようになっている。もし間違って異なるバージョンのDLLを呼び出したりすると、システムが安定に動作しないばかり、重大なセキュリティ・ホールが顕在化する可能性もある。

 このバージョン番号やビルド番号は、Windows OSが最初にリリースされたときはすべて同じ値になっているが(一部異なる場合もある)、いろいろなアプリケーションやService Pack、個別の修正プログラム(ホットフィックス)、デバイス・ドライバなどを次々とインストールしていると、同じ名前でもさまざまなバージョンのファイルが存在することになる。

 通常は、ファイルの細かいバージョン番号などはユーザーにとってはあまり関係のないことである。だがセキュリティ・ホールの修正プログラムにミスがあったとか、あるソフトウェアをインストールした結果システムの具合が悪くなったなど、場合によってはファイルを元に戻したり、アンインストールしたりする必要がある。その場合には、各ファイルの細かいバージョン情報を知っておかなければならないこともある。例えばサポート技術情報の「810847―[IE] [MS03-004] Internet Explorer 用の累積的な修正プログラム (2003 年 2 月)」や「Windows コンポーネントの未チェックのバッファにより サーバーが侵害される (815021) (MS03-007)」では、システムにインストールされているファイルのバージョンが、これらのページに記述されているものに該当するかどうか調査し、必要ならば対策を行って欲しい、などと記述されている。

 ファイルのバージョン番号は、例えばエクスプローラで対象となるファイルを選んでマウスを右クリックし、ポップアップ・メニューから[プロパティ]を選択して表示させることにより、確認することができる。

ファイルのバージョン情報
エクスプローラでファイルを選び、右クリックして[プロパティ]メニューを選択すると、ファイルのバージョン情報を確認することができる。
  ファイルのバージョン情報。
  バージョン以外にも、さまざまな情報が用意されている。

 しかし1個や2個のファイルだけならなんとかなるだろうが、調査しなければならないファイルが多数あったり、対象となるシステムが多数あったりすれば、エクスプローラではなく、コマンドラインなどを使って簡単にファイルのバージョン情報を取得したくなるだろう。

 このような用途に使えるコマンドとして、filever.exeというコマンドライン・ツールが用意されている。ただしこれは標準ではOSに含まれていないコマンドであり、Support Toolsという拡張コマンド群をインストールする必要がある。Support Toolsは、各OSのインストールCD-ROMの\SUPPORT\TOOLSフォルダに用意されている(インストールするには、このフォルダにあるSUPTOOLS.MSIを実行する)。

 fileverコマンドに、調査したいファイル名(ワイルドカードも使用可能)を引数として与えると、次のように表示される。

C:\WINDOWS\system32>filever mshtml.dll
--a-- W32i   DLL JPN   6.0.2800.1170 shp  2,787,840 02-24-2003 mshtml.dll

 この場合は、「mshtml.dll」ファイルのバージョンは「6.0.2800.1170」であるということが分かる。「6.0」はInternet Explorer 6.0向けのファイル、「2800.1170」はビルド番号を表している。さらに詳しく知りたければ「/V」オプションを付ければよい。ファイルのバージョンや対応言語などの情報を得ることができる。

C:\WINDOWS\system32>filever /v mshtml.dll
--a-- W32i   DLL JPN   6.0.2800.1170 shp  2,787,840 02-24-2003 mshtml.dll
        Language        0x0411 (日本語)
        CharSet         0x04b0 Unicode
        OleSelfRegister Enabled
        CompanyName     Microsoft Corporation
        FileDescription Microsoft (R) HTML Viewer
        InternalName    MSHTML
        OriginalFilenam MSHTML.DLL
        ProductName     Microsoft(R) Windows(R) Operating System
        ProductVersion  6.00.2800.1170
        FileVersion     6.00.2800.1170
        LegalCopyright  (C) Microsoft Corporation. All rights reserved.

        VS_FIXEDFILEINFO:
        Signature:      feef04bd
        Struc Ver:      00010000
        FileVer:        00060000:0af00492 (6.0:2800.1170)
        ProdVer:        00060000:0af00492 (6.0:2800.1170)
        FlagMask:       0000003f
        Flags:          00000000
        OS:             00040004 NT Win32
        FileType:       00000002 Dll
        SubType:        00000000
        FileDate:       00000000:00000000

 「/S」オプションと共に使用すると、指定したフォルダ以下にある(バイナリ)ファイルの情報をすべて調査することができる。End of Article

C:\WINDOWS\system32>filever /s *.dll > c:\filever.log

「Windows TIPS」


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間