JavaScript, WSH, WMIを使用しファイルのバージョンや更新日付等の情報を取得する方法

更新日:

今回は、ファイルの情報を取得してみます。動機としましては開発に必要となるツール類のバージョンが知りたかったからです。

ファイル情報を取得する

WMIを使用してNVIDIA コントロールパネルの情報を取得する

今回はCIM_DataFileクラスを使用し取得します。

サンプルとして NVIDIAのコントロールパネルのバージョンを取得しましょう。

以前作成した関数にクエリーを渡し、情報を取得します。

SELECT
 Caption, Version
FROM
 CIM_DataFile
WHERE
 Name='C:\\\\Program Files\\\\NVIDIA Corporation\\\\Control Panel Client\\\\nvcplui.exe'
// 取得したいプロパティをクエリーで指定する
var query = "SELECT Caption, Version FROM CIM_DataFile WHERE Name='C:\\\\Program Files\\\\NVIDIA Corporation\\\\Control Panel Client\\\\nvcplui.exe'";
var props = getWMIProperties(query);

if( props.length > 0 ){
    var info = props[0];
    var caption = info.Caption;  // c:\program files\nvidia corporation\control panel client\nvcplui.exe
    var varsion = info.Version;  // 8.1.940.0
}

自身もハマってしまったのですが、注意すべきポイントがあります。

WMI Query Language (WQL) のWhereでパスを指定する際に、「¥」を2個重ねる必要があります。

VBScriptで指定する場合は気にはなりませんが、JavaScript、JScriptは文字列に「¥」を表示しようと思ったら2個並べますよね。
つまり必然的にパスの区切り文字に「¥¥¥¥」を使用する事になります

これハマったんですよ。その時の事は こちらから どうぞ。

CIM_DataFileクラス

CIM_DataFile には他にも多くのプロパティが存在します。

説明プロパティ名参考地
ドライブDrivec:
製造元ManufacturerNVIDIA Corporation
ファイル名FileNamenvcplui
拡張子Extensionexe
ファイルタイプFileTypeApplication
インストール日付InstallDate20170717154715.439765+540

詳しくはSELECTに「*」を指定しデバッガーで止めてプロパティを確認した方が確実です。

参考リンク

MSDN : CMI_DataFile class
 https://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/cim-datafile

WMIに関するその他の記事

-JavaScript
-, , , ,

Copyright© 打ち聞かせ , 2019 All Rights Reserved Powered by STINGER.