この記事を読むのに必要な時間は約 5 分です。
今回はWMICを使ってファイルからソフトウェアのバージョンを取得してみたいと思います。
バージョンの取得を product から行わない
おさらい
通常、WMICを使ってソフトウェアのバージョンを取得するときは
wmic product
を使うと思います。
しかし、何らかの理由でこちらにデータが反映されていない事象が発生した場合はどうでしょうか?
プログラムの追加と削除にいないプログラムもある
InternetExplorer とかですね。 プログラムの一覧にそもそもいないですからね。
そういったファイルのバージョンを調べるときなどどうしたらよいでしょうか
そういう時に役に立つのが
wmic datafile
となります。
これはファイルから直接情報を抜き出す方法なので信頼性は高いです。
※たまにファイルにもバージョン情報が埋まっていないプログラムがありますが、そういった場合は対応はできません。
wmic datafileを使ってみる。
それでは試しに実行してみましょう。
対象は偶々目についた以下のプログラムです。
ファイルバージョンを取得してみましょう。
コマンドは以下の通りです。
wmic datafile where name="C:\\Program Files\\Oracle\\VirtualBox\\VirtualBox.exe"
結構沢山でますね。
ちょっと見ずらいので出力方式を加工します。
wmic datafile where name="C:\\Program Files\\Oracle\\VirtualBox\\VirtualBox.exe" get * /format:list
縦に表示させます。
AccessMask=1179817
Archive=TRUE
Caption=c:\program files\oracle\virtualbox\virtualbox.exe
Compressed=FALSE
CompressionMethod=
CreationClassName=CIM_LogicalFile
CreationDate=20170727133356.000000+540
CSCreationClassName=Win32_ComputerSystem
CSName=***ホスト名が入ります。********
Description=c:\program files\oracle\virtualbox\virtualbox.exe
Drive=c:
EightDotThreeFileName=c:\program files\oracle\virtualbox\virtua~1.exe
Encrypted=FALSE
EncryptionMethod=
Extension=exe
FileName=VirtualBox
FileSize=1069584
FileType=Application
FSCreationClassName=Win32_FileSystem
FSName=NTFS
Hidden=FALSE
InstallDate=20170727133356.000000+540
InUseCount=
LastAccessed=20170902215402.933651+540
LastModified=20170727133356.000000+540
Manufacturer=Oracle Corporation
Name=c:\program files\oracle\virtualbox\virtualbox.exe
Path=\program files\oracle\virtualbox\
Readable=TRUE
Status=OK
System=FALSE
Version=5.1.26.17224
Writeable=TRUE
はい。
ちゃんと、Version=5.1.26.17224 と表示されていますね。
バージョン情報以外にも、インストールした日等も取得できますので利用する機会がある人は結構役立つんじゃないでしょうか