プロが教えるわが家の防犯対策術!

VBScriptでレジストリ情報から「HKEY_USERS」配下にあるユーザー?の一覧を取得できないかと試行錯誤しています。
あるサイトを参考に「HKEY_CURRENT_USER\SOFTWARE\」配下などのキー一覧は取得できたのですが、レジストリエディタで表示される5つの大項目キー配下を取得することができません。
どなたかご教授していただけると助かります。

A 回答 (3件)

最終的にhiro198067さんのやりたいことができるのかどうかわかりませんが、HKEY_USERS直下のキーの列挙は下記でできます。

Windows XP Pro SP2 admin権限で試しました。出所は下記です。

サブキーの列挙
http://www.microsoft.com/japan/technet/scriptcen …

-----
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
-----
    • good
    • 0
この回答へのお礼

SHIMAPEEさん、ありがとうございます。
教えていただいたソースでスクリプトを作ることができました。
早速テストをして実用できるようにしたいと思います。

お礼日時:2007/02/14 09:22

★確認して下さい。


・『foo.RegWrite』行が『REG_DWORD』型なのに『"0"』と文字列型で指定されています。→正しくは『0』で良いのでは?
・以上。おわり。
    • good
    • 0
この回答へのお礼

Oh-Orangeさん、ありがとうございます。
ご忠告いただきまして助かりました。
文字列指定してましたね^^;

お礼日時:2007/02/14 09:23

★『大項目キー(ルートキー)』とは『ハイブ』のことですね。


Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegRead( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32\PlacesBar\Place0" )

・上記の方法で『HKEY_CURRENT_USER』配下の『Place0』という値を取得できると思います。
・キーの取得は出来ないので、必ず『値』を指定してくださいね。
・以上。おわり。→下の『参考URL』をどうぞ。

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/453re …

この回答への補足

ありがとうございました。
でも値の取得はできているのです…。
変更までできるのですが、「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 …

キー一覧を取得してループ処理させればいいのかなと単純に考えていたのですが…。

補足日時:2007/02/13 19:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!