[VBS] レジストリのキー一覧を取得する方法
レジストリのあるキーに含まれるサブキーをすべて取得する方法をご紹介します。
以下の画像のように、「sample」というキーの中に
「test1~test3」までが入っています。

この「test1~test3」までをすべて取得する方法をご紹介します。
以下のコードでできます。
Dim Locator, Service, Reg
Dim Shell
Dim SubKeySet, SubKey
Dim strKeys, strVals
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer(vbNullString, "root\default")
Set Reg = Service.Get("StdRegProv")
Const HKEY_CURRENT_USER = &H80000001
Const TARGETKEY = "Software\sample"
Set Shell = createobject("WScript.Shell")
Const S_HKEY_CURRENT_USER = "HKEY_CURRENT_USER\"
' サブキーを全て取得する
Reg.EnumKey HKEY_CURRENT_USER, TARGETKEY, SubKeySet
for each SubKey in SubKeySet
' サブキーを文字列にする
strKeys = strKeys & SubKey & vbCrLf
' サブキーの値を取得する
strVals = strVals & Shell.regRead(S_HKEY_CURRENT_USER & TARGETKEY & "\" & SubKey & "\") & vbCrLf
next
WScript.Echo strKeys
WScript.Echo strVals
結果は以下のようになります。
キーと規定値を取得できました。


キーの値を取得する「regRead」(コードの22行目)については、以下のページを参照してください。
以下のサイトを参考にしました。