投稿

ラベル(WMI)が付いた投稿を表示しています

HSPでWMIの各種情報を取得(実行用スクリプトの生成)

イメージ
1.概要 WMIの名前空間、クラス名とそのクラスに対応したプロパティの一覧および取得したプロパティから 実行用のVBScriptを 自動作成するスクリプトを作成しました。また、実行は、コマンドプロンプトより、cscriptから実行しますが、面倒なので 実行用のスクリプト作成と同時に実行確認が簡単にできるように実行確認用のバッチファイルも同時に作成して出力させています。 2.利用方法 利用方法は、HSPのスクリプトエディタより propgen.hsp を実行します。 クラス名選択用のコンボボックスよりクラス名を選択します。そして、実行ボタンをクリックすれば、カレントディレクリに 3つのファイルが作成されます。 (例)Class Name : Win32_BIOSとした場合 ・Win32_BIOS.txt (クラス名から取得したプロパティリスト) ・Win32_BIOS.vbs (WMI実行用のVBScript) ・Win32_BIOS.bat (上記の実行確認用バッチファイル) 3.ソースコード ソースコードは、下記の通りです。開発言語は、HSP言語(HSP3.51)で作成しています。 WMIの拡張クラスに対応したプロパティ一覧の取得と実行用スクリプト(VBScript)の生成および実行確認用のバッチファイルの生成と出力に 対応しています。 ;***** クラスに対応したプロパティ一覧取得と実行用スクリプトの生成 (propgen.hsp) ***** #packopt type 0 #packopt name "propgen" #packopt runtime "hsprt" #packopt manifest "app.manifest" #packopt icon "sample.ico" #packopt hide 1 #module #deffunc SendVBSSave str VBSName notesel SendVBS@ notesave dir_cur+"¥¥"+VBSName return #global #uselib "kernel32.dll&q

HSPでWMIの各種情報を取得(名前空間、クラス名、プロパティ)

イメージ
1.概要 Windows Management Instrumentation (WMI) は、Windows Driver Modelへの拡張の一種で、システムの構成要素について 情報収集と通知を行うオペレーティングシステムのインタフェースを提供するものです。今回、このWMIをHSPスクリプトにて 名前空間やクラス名およびプロパティなどのリストを取得したいと思います。PowerShellなどの登場で、 WMIについては、ほとんど記事などで情報を目にすることが少なくなったのですが、枯れてしまった技術なのでしょうか? 豊富なクラスが用意されていて、取得できる情報も多岐に渡り便利なインターフェイスだと思うのですが、 バッチ(bat)と同様に古くて便利な技術です。今でもシステム運用管理などの現場においては非常に良く利用されています。 2.ソースコード WMIを利用するに当たっての基本となるラス名の一覧などを取得するソースコードは、下記の通りです。 取得したクラス名を利用して、実行用のスクリプトなどを生成するツールを作成します。 (1)WMIの名前空間を取得するサンプル (namespace.hsp) (2)WMIのWin32拡張クラス名の一覧を取得 (VBScript版) (win32ex.hsp) (3)クラスに対応したプロパティ一覧取得と実行用スクリプトの生成 (propgen.hsp) 筆者の環境で実行した結果、(2)のサンプルで取得できたクラス名は、全部で394個有りました。 (3)の propgen.hsp については、 当ブログの別記事で扱います。 namespace.hsp は、WMIの名前空間を取得するスクリプトです。 実行すると、取得した名前空間を表示したメッセージボックスが表示されます。 筆者の環境で実行して見たところ、18個の名前空間が取得されました。どのように利用するか判りませんが、 システムによっては名前空間の設定が必要なものもあるようです? ;***** WMIの名前空間の取得 (namespace.hsp) ***** newcom objVBsc, "ScriptControl" objVBsc("Language")="VBScript"

TOP