WMI Fun !! 〜 WMIに興味がある方・システム管理者必見!! 〜
 WMI Step|WMI Sample|WMI Reference|WMI Library|My Let'snote|Personal|Link|About WMI Fun !!

WMI Fun !! > WMI Sample (VBS) > レジストリの値を読み込む

Panasonic Let'snoteを長年愛用しています、その理由はMy Let'snoteで…
インクを買うよりもしかしたら安い?インクジェット複合機Canon PIXUS MP493
ビジネスにパソコンを活用する為のバイブル、月刊仕事とパソコン

レジストリの値を読み込む: StdRegProv - WMI Sample (VBS)

Topics

レジストリの値を読み込むサンプルプログラムです。名前空間が「root\default」、クラスが「StdRegProv」になります。

従来のVB(VB6)版のサンプルはこちらで公開しています。


Sample Code

Option Explicit

'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClass
Dim oLocator
Dim oService
Dim sRet
Dim lRet
Dim bRet
Dim sTmpbRet
Dim i
Const HKEY_LOCAL_MACHINE = &H80000002

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer(, "root\default")
'クエリー条件をWQLにて指定する。
Set oClass = oService.Get("StdRegProv")

'文字列値
oClass.GetStringValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", sRet

'DWORD値
oClass.GetDWORDValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "InstallDate", lRet

'バイナリ値
oClass.GetBinaryValue HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "LicenseInfo", bRet

For i = 0 To Ubound(bRet)
sTmpbRet = sTmpbRet & Hex(bRet(i)) & " "
Next

MsgBox "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionキーの" & _
"一部を読んだ結果です。" & vbCrLf & vbCrLf & _
"RegisteredOwner(文字列値):" & vbCrLf & sRet & vbCrLf & vbCrLf & _
"InstallDate(DWORD値)" & vbCrLf & lRet & vbCrLf & vbCrLf & _
"LicenseInfo(バイナリ値)" & vbCrLf & sTmpbRet & vbCrLf & vbCrLf

'使用した各種オブジェクトを後片付けする。
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing


Comment

実行するとレジストリの値の読み込みを行います。参照先は「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」です。StdRegProcクラスはWin32_&&&といったクラスとは違う名前空間に存在しているため、ConnectServerする際に名前空間が「root\default」を明示的に指定しています。
ここでは実際値を読み込む際多いと思われるものを例として書いてあります。文字列値・DWORD値・バイナリ値の3種類です。それぞれ違うメソッドが用意されていますが指定する引数は同じようなパターンです。

注意する点としては読み込みたいレジストリのパスを全て記述するわけではないというところです。パスの親ルートの名前と値の名前だけは別途指定する必要があります。親ルートを指定する型はLong形になるので事前に以下のような定数と関連付けになっていることを意識しておくことが必要です。

・HKEY_CLASSES_ROOT = &H80000000
・HKEY_CURRENT_USER = &H80000001
・HKEY_LOCAL_MACHINE = &H80000002
・HKEY_USERS = &H80000003
・HKEY_CURRENT_CONFIG = &H80000005
・HKEY_DYN_DATA = &H80000006

もっと詳しいことはWMI SDKを見てみてください。

StdRegProv クラスに関連するサンプルは他に、

を紹介しています。
なおWMIの使い方(VB6, VBS, VBA, VB.NET, VC#, PowerShellを対象)に関してはWMI Stepも参考にしてみてください。(WMI初心者・入門編としてもおすすめです。) 各種言語を使用したWMIを使用するたたき台としてソーステンプレートも公開しています。プログラム/スクリプト作成時に役立てば…と思っています。


Recommended book

個人的にお勧めする本の紹介です。


Latest sample information

最近WMI Sampleへ追加したサンプルのご紹介です。

興味のあるサンプル・クラスがありましたら参考にしてみて下さい。


ご意見・ご要望・ご感想をこちらのアンケートからお待ちしています
WMIに関して調べているけど探し物が見つからない…という方はSearch Resultから検索してみましょう!!

MCP(Microsoft Certified Professional)一応MCP(Microsoft Certified Professional)、MCA(Microsoft Certified Associate)所有してたりします…

- WMI Fun !! -
http://www.wmifun.net/
Microsoft社のテクノロジーであるWMI(Windows Management Instrumentation)の使い方を
Visual Basicを使ってのんびり公開しています
WMIはVB/VBAや.Net(VB,C#)以外でもWMICやWSH(VBS/JS)・PowerShellなどスクリプト言語からも使えますよ!
Windowsベースの社内ITシステムに関する資産管理、アセットマネジメントや監視業務の効率化、 インベントリ情報収集系システムツール開発にWMIはお勧めです

This website is created by Toh.
Copyright(C) 1997-2012 WMI Fun !!. All rights reserved.
WMI Fun !!へのリンクはご自由に…相互リンクに関するお問い合わせはアンケートページからお願いします。

∧ ページの先頭へ…