Download, and extract
SUBINACL.EXE. By default it installs to a Windows Tools subfolder. Move a copy to
\Windows\System32 (so it is found in the PATH):
http://www.microsoft.com/downloads/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b
Next, open a new Notepad document. Click once below where it says "Copy to clipboard", then do a right-click paste of the Code box contents into your open Notepad document:
subinacl /subkeyreg HKEY_LOCAL_MACHINE /setowner=administrators
subinacl /subkeyreg HKEY_CURRENT_USER /setowner=administrators
subinacl /subkeyreg HKEY_CLASSES_ROOT /setowner=administrators
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
cls
Exit
Do a File, "Save as..." and enter as the filename (including quotation marks): "reset.cmd"
To open an elevated cmd prompt, you can click on the Start menu, choose All Programs, then Accessories, then right-click on the item named Command Prompt and choose Run as administrator.
Then run your new file, reset.cmd. It will not be speedy.
You can see Araron Stebner of Microsoft taking this same approach to the general issue of registry permission failures under Vista here:
http://blogs.msdn.com/astebner/archive/2006/09/04/739820.aspx