我们有一个仅在装有 Windows 7 x64 和 Acrobat Reader XI 的新工作站上发生的后续问题。
每隔几天就会自动将以下键添加到注册表中:
HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{CA8A9780-280D-11CF-A24D-444553540000}
此键的效果是 Acrobat Reader XI 在 Internet Explorer 加载项中被禁用。因此,当用户在 IE(或 SAP 或其他使用 IE 的 Windows 软件)中打开 PDF 时,它不是在 IE 中打开,而是在一个新的单独窗口中打开。
所有客户端工作站都使用 Microsoft System Center 2012 R2 和 Microsoft System Center Endpoint protection 作为防病毒解决方案。
您能否建议这可能是什么原因,例如组策略,防病毒等?
组策略可能正在添加该注册表值。该
gpresult
工具可以让您深入了解通过组策略应用的设置。任何以用户身份运行的程序都可以这样做,因为默认情况下用户有权修改注册表的该部分。由于它正在“每隔几天”发生变化,我怀疑不是组策略在这样做(因为策略刷新比这更频繁地发生)。
我会考虑启用对
HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Settings
注册表项的审核并查看安全事件日志以捕获修改。(我不急于链接到博客,但是这篇文章中的过程很好,因为它不涉及通过组策略更改审计策略,微软的大多数官方示例都是这样做的。)您可能还希望启用流程跟踪审核,以清楚地了解修改中涉及哪些流程。
重现问题
假设你已经安装
这里似乎发生了以下情况:
MalwareProtection注册了一个名为Microsoft Antimalware IOfficeAntiVirus implementation ( MpOAv )的组件,用于使用IE进行扩展验证。
MpOAv注册为
{2781761E-28E1-4109-99FE-B9D127C57AFE}
.您可以在注册表中检查MpOAv的详细属性。关联的 DLL 通常位于
C:\Program Files (x86)\Microsoft Security Client\MpOAv.dll
现在,每次IE想要运行 ActiveX 控件时,注册的MpOAv都会在此之前被调用,有时会出现行为不端或只是认为Reader ActiveX 控件不安全。我不知道它的行为真正取决于什么。
这一切都会导致IE (iexplore.exe) 将 2 个键写入注册表:MpOAv
{2781761E-28E1-4109-99FE-B9D127C57AFE}
和Reader{CA8A9780-280D-11CF-A24D-444553540000}
的 CLSID 。从此时起,IE将不会运行Reader ActiveX 控件,直到有人从那里手动删除其 CLSID。这是观察到的问题。
解决方法
首先阻止IE调用 Extension Validation 组件: Remove CLSID of MpOAv from the Extension Validation keys
[HKLM\…\Internet Explorer\Extension Validation]
。这需要管理员权限,并且可以通过组策略进行分发。请注意:MalwareProtection的未来更新可能会重新创建注册表项。卸载 Microsoft System Center Endpoint Protection / Microsoft Malware Protection。使用不同的产品。
长期解决方案
虽然 oleschri 的回答非常全面,但我想添加一些额外的细节。
在我的观察中,我没有看到
MpOAv
影响或与此问题相关。删除扩展验证密钥也不会改变我经历的任何行为 - 帖子的其余部分让我进一步挖掘......使用 Internet Explorer 11 并访问许多 Google 网页(例如 Google 图片)时,Javascript 会生成错误:
就在尝试返回新
window.ActiveXObject(a)
段之后。这会导致 IE
\Ext\Settings\{CA8A9780-280D-11CF-A24D-444553540000}
更改注册表,并禁用 Adobe PDF Reader Add-On。使用Sysinternals工具 Procmon 并过滤我们的注册表位置的路径可以观察到这一点。从 IE 11 开始,window.ActiveXObject 属性对 DOM 是隐藏的。https://msdn.microsoft.com/library/dn423948(v=vs.85).aspx
来自 Google 的错误/过时代码?当然并不意味着微软不能更好地处理异常。
Oleschri 的解释非常准确。
几天前,MS Support 的一个解释是这样的:
“经过内部分析并与合作伙伴合作,我们认为我们已经确定根本原因是 Adobe 如何在 IE 中使用我们的注册表项的问题,导致 Adobe 的行为就像它被阻止或未安装一样,即使它是。问题已报告,应在 Adobe PDF 产品的下一个季度更新中解决。SCEP 通过激活 IE 插件扫描功能暴露了问题,但不会导致问题。这也解释了为什么我们没有看到类似问题与其他 IE 插件。”
没有完全足够的解决方案。短期解决方案包括运行组策略客户端首选项以删除 Adobe CLSID 密钥(如果找到),或修改 IE 快捷方式以在启动前删除 CLSID。在 IE11 中禁用恶意软件扫描,无论是每个客户端还是组策略设置,通过 Internet 安全区域设置,“在 ActiveX 控件上运行反恶意软件”远非一个明智的选择,我认为大多数人都会同意。
完全不推荐
设置的 GP 位置是:“管理模板\Windows 组件\Internet Explorer\Internet 控制面板\安全页面\Internet 区域\“不要针对 ActiveX 控件运行反恶意软件程序”
Adobe 已解决的问题
幸运的是,Adobe 于 2016 年 1 月 12 日发布了 v 11.0.14,解决了这个问题。同样,同一版本的 Adobe Reader DC 也没有此问题。
http://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotes/11/11.0.14.html
这是一个小 VB 脚本,您可以从中创建快捷方式并进行部署。这将删除 Adobe Reader CSLID,然后启动 IE 并转到 Google。
问候
感谢 oleschri 和 Jair 提供的信息;它非常有帮助。
我想补充的一件事是,这个问题只影响我关闭了 UAC 的用户。如果您在强制问题发生时观看 Procmon(通过转到 google 图像...),您会注意到 IE 正在寻找以下密钥并失败,结果为“NAME NOT FOUND”:
如果用户的 UAC 开启,这就是所有发生的事情。Procmon 显示 IE 多次寻找密钥,然后什么也没有。但是,如果 UAC 关闭,您应该会从 IE 中看到“RegCreateKey”操作(就像 oleschri 在他的帖子中解释的那样)。看起来 IE 没有找到它想要的键,所以它正在创建它们。我认为 UAC 正在阻止 IE 创建密钥,这就是为什么只有关闭它的用户才会遇到问题。
我在 Internet 安全区域中找到了此选项以禁用“扩展验证”。 不要针对 ActiveX 控件运行反恶意软件程序
暂时将此选项设置为“禁用”,希望 MS 和 Adobe 一起解决这个问题:)