症状

症状

MMC Snap-in 无法加载大多数进程,并在 Windows 2008R2 x64 上抛出错误。它给出错误:

mmc 无法创建管理单元。打开服务器管理器时,CLSID:FX:{18ea3f92-d6aa-41d9-a205-2023400c8fbb}。

打开事件查看器等时也会出现类似的错误。我认为 .NET Framework 有问题,但我无法缩小确切原因。有其他人见过这个问题吗?我有一个 mmc.exe 的 dmp 文件,但无法从中获得任何有意义的信息。

答案1

我知道这是一篇旧帖子,但我遇到了同样的问题,并尝试了在互联网上找到的所有相关方法。在与 Microsoft 合作 3 天后,我们找到了解决方案。请参阅下文,了解已完成的所有步骤以及最终解决问题的方法。这是针对 Server 2008R2 计算机的:

症状

MMC 无法创建管理单元。管理单元可能未正确安装。

姓名:服务器经理

CLSID:FX:{18ea3f92-d6aa-41d9-a205-2023400c8fbb}

名称:事件查看器

clsid: fx: {b05566ad-fe9c-4363-be05-7a4cbb7cb510} 事件查看器

名称:任务计划程序

clsid:fx:{c7b8fb06-bfe1-4c2e-9217-7a69a95bbac4} 任务计划程序

名称:高级安全 Windows 防火墙

clsid:fx:{b05566ac-fe9c-4368-be02-7a4cbb7cbe11} 具有高级安全性的 Windows 防火墙

服务器信息

Microsoft 服务器 2008R2 SP1

HP ProLiant DL380G6

解决

  • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config用已知工作文件替换
  • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\用已知工作文件夹替换整个文件夹

  • 运行 Server 2008 的系统更新准备工具 – 所有报告均未出现错误

  • c:\Windows\Microsoft.NET\Framework\v3.5\WFServicesReg.exe /r /b

  • sfc /scannow跑了,干净地回来了

  • .NET 验证程序在所有版本的 .NET 上,都验证成功

  • 通过 CLI 重新安装 .NET 3.5:

    DISM /online /disable-feature /FeatureName:NetFx3
    DISM /online /enable-feature /FeatureName:NetFx3
    
  • 删除的注册表项:

    HKLM\Software\Microsft\OLE\MachineAccessRestriction HKLM\Software\Microsft\OLE\MachineLaunchRestriction

  • 重新启动“启动 DCOM 服务器进程启动器”服务

  • 替换文件dsadmin.dlldssite.msc位于C:\Windows\winsxs\x86_microsoft-windows-d..mc-sitesandservices_31bf3856ad364e35_6.1.7601.17514_none_a143f244c78549c1具有良好已知版本的

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMCSnapIns\FX{b05566ad-fe9c-4363-be05-7a4cbb7cb510}\RuntimeVersion,将值从 更改v2.0.40607v2.0.50727

微软的最终解决方案:

  • 根据 Sfc 输出报告,操作系统的服务堆栈很干净
  • 卸载/重新安装 Visual C++ 2005/2008/2010 并重新启动,Visual C++ 库组件从图片中消失
  • .Net Policy 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\v2.0- 50727=下具有正确的值50727-50727
  • 即使重新启动后,卸载 McAfee 也无济于事。
  • 组件和架构配置单元在几次重启后卸载

  • 我们收集到的 IDNA 跟踪表明,我们失败是因为一个坏函数指针很可能是由 .net 组件返回的。应用更新后https://support.microsoft.com/en-us/kb/2688730重新启动后问题消失,这表明服务器上有一个损坏的.net 组件。

答案2

查看此主题。这听起来像是一次损坏的更新。

答案3

我遇到了同样的问题,但它工作得很好,当我从系统中删除 .Net 3.5 时,只需删除它,一切都恢复正常。这似乎是 .net 本身的问题,我还没有尝试再次安装 3.5,当我这样做时会更新线程

答案4

梅原彰的回答此主题,另一个解决方案是:

  1. 导航到损坏的机器上的以下目录:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
  2. machine.config在进入第 3 步之前,将文件复制到桌面以防万一。
  3. 重命名machine.configmachine.config.old(在原始目录中C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG:)。
  4. 重新启动(并非总是需要,但可以确保全新启动)。

注意:以上适用于 x64 操作系统。对于 x86,请仅使用目录执行相同操作:C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\

我的印象是这只适用于尚未升级到.net framework 4 的操作系统;尽管没有发现任何明确的证据来证实这一点。

相关内容