I have an MSI installer which registers an ActiveX component. The registration info is written to the HKEY_CURRENT_USER
hive, and all works fine and dandy.
For one user, however, IE is behaving as though the component is not registered. I've looked in the registry and the registration is there in HKCU
. However, it doesn't appear in HKCR
, which is really strange as that should be a merged view of HKCU\Software\Classes
and HKLM\Software\Classes
.
I've also noticed that the registration appears in
HK_USERS\<sid>\Software\Classes\CLSID\
but not in
HK_USERS\<sid>_Classes\CLSID\
The only way I can get it to work for her is to write the registration information to
HK_USERS\<sid>_Classes\CLSID\<GUID>\
at which point everything works perfectly.
Any ideas why this is?
I just resolved a problem with the exact same symptoms. The issue in this case was that the HKEY_USERS\[sid]\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders key was missing. This prevented Windows from locating the classes hive for that user. I have no idea how/why the key went missing.
Another symptom of this problem is that if you look under HKEY_USERS, you will see that the key HKEY_USERS\[sid]_classes is missing.
To fix it, just repair the missing key and reboot the machine. You can copy the good values from HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\User Shell Folders.
I assume you have checked any Internet Explorer security settings? Is the user in a special AD group? Disabled addin in Internet Explorer?
For "problem users" I sometimes export text files from the user hives and diff with regular text diff tools to spot different settings.
I finally figured out the "answer" to this question. Basically, it appears that on some users PC's we had to restart the PC. This would then ensure that the relevant hives were correctly merged.
We only had to do this on some users PCs - on other the hives were correctly in sync.
All PCs were XP SP3, with the same build applied. It didn't seem to make a difference if users were admins or not.