- ベストアンサー
HKEY_USERS下のキーを取得したい
VBScriptでレジストリ情報から「HKEY_USERS」配下にあるユーザー?の一覧を取得できないかと試行錯誤しています。 あるサイトを参考に「HKEY_CURRENT_USER\SOFTWARE\」配下などのキー一覧は取得できたのですが、レジストリエディタで表示される5つの大項目キー配下を取得することができません。 どなたかご教授していただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最終的にhiro198067さんのやりたいことができるのかどうかわかりませんが、HKEY_USERS直下のキーの列挙は下記でできます。Windows XP Pro SP2 admin権限で試しました。出所は下記です。 サブキーの列挙 http://www.microsoft.com/japan/technet/scriptcenter/scripts/os/registry/osrgvb10.mspx ----- Const HKEY_USERS = &H80000003 strComputer = "." Set StdOut = WScript.StdOut Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "" oReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys For Each subkey In arrSubKeys StdOut.WriteLine subkey Next -----
その他の回答 (2)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★確認して下さい。 ・『foo.RegWrite』行が『REG_DWORD』型なのに『"0"』と文字列型で指定されています。→正しくは『0』で良いのでは? ・以上。おわり。
お礼
Oh-Orangeさん、ありがとうございます。 ご忠告いただきまして助かりました。 文字列指定してましたね^^;
- Oh-Orange
- ベストアンサー率63% (854/1345)
★『大項目キー(ルートキー)』とは『ハイブ』のことですね。 Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegRead( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32\PlacesBar\Place0" ) ・上記の方法で『HKEY_CURRENT_USER』配下の『Place0』という値を取得できると思います。 ・キーの取得は出来ないので、必ず『値』を指定してくださいね。 ・以上。おわり。→下の『参考URL』をどうぞ。
補足
ありがとうございました。 でも値の取得はできているのです…。 変更までできるのですが、「HKEY_USERS」配下の各ユーザごとにある値を変更するスクリプトを作成したいと思っています。 値変更のソースを記述しておきます。 Set foo = WScript.CreateObject("WScript.Shell") wscript.echo "終了しました" & foo.RegWrite("HKEY_USERS\(ユーザSID)\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1402","0","REG_DWORD") 下記URLである場所のキー一覧を取得できるようです… http://winscript.s41.xrea.com/wiki/index.php?%5B%5BFAQ%5D%5D#content_1_18 キー一覧を取得してループ処理させればいいのかなと単純に考えていたのですが…。
お礼
SHIMAPEEさん、ありがとうございます。 教えていただいたソースでスクリプトを作ることができました。 早速テストをして実用できるようにしたいと思います。