• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 782
  • Last Modified:

usuing vbs how can i read a binary reg value from the HKEY_USERS registry and rename the key so that i can import different keys?

Morning, I am looking to pin icons to the desktop for 10,000+ users as part of the office 2007 roll out, currently office icons are built in to the standard image build which will be removed at the end of the year, i have found the registry keys that contain the settings for every user profile on the machine under HKEY_USERS, i would normally add the registry key import to the logon script but as we are doing a stagered roleout of office i thought a wsh/vbs script may do the trick.

I have a script that installed office 2007 and then adds additional reg keys however it will not add them to every users profile on the machine so i was hoping to write something that would loop though all they sid's and add the keys how ever when i have tried i am able to read the first key and store that as a variable but when i try to output it to another key to create a backup before i go ahead and change keys i get a data mismatch.

Is there a way to read and write binary reg keys in a script that will loop through all the sid's and change the keys or do i need to come up with a different approach?
Set Shell = CreateObject("WScript.Shell")
arr = Shell.RegRead("HKEY_USERS\S-1-5-21-1008850429-2325668040-1177597070-84490\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage\favorites")
For I = LBound(arr) To UBound(arr)
a(I) = CInt(arr(I))
b(I) = Hex (CInt(arr(I)))
Wscript.Echo "The registry key name's decimal value is", Join(a),",", "the hex value is", Join(b),"."
msgbox Join(a),,"The decimal value is"
msgbox Join(b),,"The hexadecimal value is"

Open in new window

  • 2
1 Solution
mdlisterAuthor Commented:
ok so i have been doing some work on this and so far have found a few examples of how to get this done envolving taking the key and creating a temp reg key then importing it to the machine here is the code, does anyone know how to get it to loop through all the HKEY_USERS Sid's that arent system accounts and apply the key?
Const st_TEMPFILE = "temp.reg"
'Dems the dims
Dim key 
Dim oFS
Dim txtStream
Dim strComputer
Dim WSHShell
'Set WSH
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set Shell = CreateObject("WScript.Shell")
arr = Shell.RegRead("HKEY_USERS\S-1-5-21-1008850429-2325668040-1177597070-84490\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage\favorites")
a = arr
For I = LBound(arr) To UBound(arr)
a(I) = Hex (CInt(arr(I))) + ","
If a(I) = "0" Then
a(I) = "00,"
End if
'Create the temporary reg file
Set oFS = CreateObject("Scripting.FileSystemObject")
Set txtStream = oFS.CreateTextFile(st_TEMPFILE,true)
txtStream.WriteLine("Windows Registry Editor Version 5.00")
txtStream.WriteLine("[HKEY_LOCAL_MACHINE\SOFTWARE\Description\Microsoft\RPCUUID Temporary Data]")
txtStream.WriteLine("@=" & Chr(34) & Chr(34))
txtStream.WriteLine(chr(34) & "BackupKey" & chr(34) & "=" & "hex:" & Join(a,""))
'Execute regedit /s (silent) against the temporary .reg file
WshShell.Run "regedit " & st_TEMPFILE, 1, true
Set WshShell = Nothing
'Delete the temporary .reg file (If you want it to remain for your review comment out the follwoing line)
oFS.DeleteFile st_TEMPFILE
Set oFS = Nothing
'Echo to let me know we've reached the end of the script, and then a Quit
WScript.Echo("Process Complete")

Open in new window

mdlisterAuthor Commented:
right ok i have managed to get the script to do what i want and write the binary reg keys but how would i loop it through the SID's?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now