レジストリの値を取得するスクリプト
書込みがあれば読込めとかいう無茶振りもある・・・。
仕方がないので色々と探しました。
まんまパクリですが・・・・・。
とりあえず可変値でも何とか取得できるし、これで値は取れそうです。
後はCSVに吐き出させてそれをEXCELに取込ませるという面倒なことを
しないといけない。やめてくれよなぁこういうの
'refer 'https://gallery.technet.microsoft.com/scriptcenter/d9d76585-4338-400e-a7a5-48ad6664f496 'https://stackoverflow.com/questions/18098319/iterate-through-registry-subfolders 'http://www.tek-tips.com/viewthread.cfm?qid=1162228 Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." const REG_SZ = 1 const REG_EXPAND_SZ = 2 const REG_BINARY = 3 const REG_DWORD = 4 const REG_MULTI_SZ = 7 '読取りたいキーのパス指定 strOriginalKeyPath = "SOFTWARE\*****" '関数呼出 FindKeyValue(strOriginalKeyPath) '------------------------------------------------------------------------- ' レジストリキーを再帰的に取得する。 '------------------------------------------------------------------------- Function FindKeyValue(strKeyPath) Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") errorCheck = oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys) If (errorCheck=0 and IsArray(arrSubKeys)) then For Each subkey In arrSubKeys ' Wscript.Echo subkey ' strNewKeyPath = strKeyPath & "\" & subkey FindKeyValue(strNewKeyPath) Next End If oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, _ arrValueNames, arrValueTypes If (errorCheck=0 and IsArray(arrValueNames)) then For i=0 To UBound(arrValueNames) ' Wscript.Echo "Value Name: " & arrValueNames(i) 'キー名を取得する。 strValueName = arrValueNames(i) '再帰的に取得した値を表示する Select Case arrValueTypes(i) Case REG_SZ oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue ' wscript.echo arrValueNames(i) & "Value: " & strvalue ' Case REG_EXPAND_SZ oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strEXValue ' wscript.echo arrValueNames(i) & "Value: " & strExvalue ' Case REG_BINARY oReg.GetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrBytes strBytes = "" For Each uByte in arrBytes strBytes = strBytes & Hex(uByte) & " " Next ' wscript.echo arrValueNames(i) & ":" & strBytes ' Case REG_DWORD oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue ' wscript.echo arrValueNames(i) & ": " & Cstr(dwvalue) ' Case REG_MULTI_SZ oReg.GetMultiStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrValues strText = arrValueNames(i) & ": " For Each strValue in arrValues strText = strText & " " & strValue Next ' wscript.echo strText ' End Select Next End if end Function
コメント