我有一个 MSI 安装程序,用于注册 ActiveX 组件。注册信息已写入HKEY_CURRENT_USER
配置单元,一切运行正常。
但是,对于一个用户来说,IE 的行为就像该组件未注册一样。我查看了注册表,发现注册信息在 中HKCU
。但是,它没有出现在 中,这确实很奇怪,因为这应该是和HKCR
的合并视图。HKCU\Software\Classes
HKLM\Software\Classes
我还注意到注册信息出现在
HK_USERS\<sid>\Software\Classes\CLSID\
但不是在
HK_USERS\<sid>_Classes\CLSID\
我能让她工作的唯一方法是将注册信息写入
HK_USERS\<sid>_Classes\CLSID\<GUID>\
此时一切都运行正常。
知道这是为什么吗?
答案1
我刚刚解决了一个症状完全相同的问题。本例中的问题是HKEY_USERS\[sid]\Software\Microsoft\Windows\CurrentVersion\Explorer\用户 Shell 文件夹密钥丢失。这导致 Windows 无法找到该用户的类配置单元。我不知道密钥是如何/为何丢失的。
该问题的另一个症状是,如果您查看 HKEY_USERS,您将发现缺少键 HKEY_USERS\[sid]_classes。
要修复此问题,只需修复丢失的密钥并重新启动计算机。您可以从 HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\User Shell Folders 复制正确的值。
答案2
我假设您已经检查过 Internet Explorer 安全设置?用户是否属于特殊 AD 组?Internet Explorer 中的插件已禁用?
对于“问题用户”,我有时会从用户配置单元导出文本文件,并使用常规文本差异工具进行差异分析,以发现不同的设置。
答案3
我终于找到了这个问题的“答案”。基本上,似乎在某些用户的 PC 上,我们必须重新启动 PC。这样才能确保相关配置单元正确合并。
我们只需要在某些用户电脑上执行此操作 - 其他电脑上的蜂巢都可以正确同步。
所有 PC 都运行的是 XP SP3,并应用了相同的版本。用户是否是管理员似乎没有区别。