无法在 服务器管理器 中查看角色和功能并接收错误代码0x800706BE

本文解决以下问题:无法在 服务器管理器 中查看角色和功能并接收错误代码0x800706BE。

适用于: Windows Server 2012 R2
原始 KB 编号: 2461206

症状

请考虑以下情况:

  1. 你有一台运行 Windows Server 2008 或 Windows Server 2008 R2 的计算机。
  2. 打开“服务器管理器”窗口以查看/添加/删除角色和功能。

在此方案中,角色和功能不会在服务器管理器窗口中以黄色的砰砰声显示。 如果尝试打开服务器管理器底部,将收到以下错误消息:

服务器管理器
刷新服务器管理器出现意外错误:远程过程调用失败。 来自 HRESULT 的 (异常:0x800706BE)
有关详细信息,请参阅事件日志:诊断、事件查看器、应用程序和服务日志、Microsoft、Windows、服务器管理器、Operational.)

同时,以下事件将添加到 Microsoft-Windows-ServerManager/Operational 日志中:

日志名称:Microsoft-Windows-ServerManager/Operational
来源:Microsoft-Windows-ServerManager
日期: <日期 & 时间>
事件 ID:1601
任务类别:无
级别:错误
关键 字:
用户: <用户名>
计算机: <计算机名称>
说明:
无法发现系统的状态。 发现意外异常:
System.Runtime.InteropServices.COMException (0x800706BE) :远程过程调用失败。 来自 HRESULT 的 (异常:0x800706BE)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (Int32 errorCode, IntPtr errorInfo)
at Microsoft.Windows.ServerManager.ComponentInstaller.CreateSessionAndPackage (IntPtr& 会话,IntPtr& 包)
at Microsoft.Windows.ServerManager.ComponentInstaller.InitializeUpdateInfo ()
at Microsoft.Windows.ServerManager.ComponentInstaller.Initialize ()
at Microsoft.Windows.ServerManager.Common.Provider.RefreshDiscovery ()
at Microsoft.Windows.ServerManager.LocalResult.PerformDiscovery ()
at Microsoft.Windows.ServerManager.ServerManagerModel.CreateLocalResult (RefreshType refreshType)
at Microsoft.Windows.ServerManager.ServerManagerModel.InternalRefreshModelResult (对象状态)

原因

计算机上的某些目录文件、清单文件或 MUM 文件已损坏。

解决方案

下面是解决此问题的步骤:

  1. 从位置获取 Microsoft 更新就绪工具: https://support.microsoft.com/kb/947821

  2. 在有问题的计算机上运行 Microsoft 更新准备工具。

  3. 扫描完成后,打开 %Systemroot%\Windows\logs\CBS\Checksur.log 文件。

  4. 检查文件中的损坏信息。 下面是一些示例:

    (f) CBS MUM 损坏0x00000000服务\Packages\Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1. 0.mum 预期文件名Package_for_KB978601_server~31bf3856ad364e35~amd64~~6.0.1.0.mum 与实际文件名不匹配
    (f) CBS MUM 损坏0x00000000服务\Packages\Package_for_KB979309~31bf3856ad364e35~amd64~~6.0.1.0.mum 预期文件名Package_for_KB979309_server~31bf3856ad364e35~amd64~~6.0.1.0.mum 与实际文件名不匹配

    (f) CBS MUM 损坏0x800B0100服务\Packages\Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1。 0.mum servicing\Packages\Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1.0.cat 包清单不能由相应的验证 catalog (f) CBS MUM Corrupt 0x800B0100 servicing\Packages\Package_for_KB979309~31bf3856ad364e35~amd64~~6.0.1 .0.mum servicing\Packages\Package_for_KB979309~31bf3856ad364e35~amd64~~6.0.1.0.cat 包清单无法验证由相应的目录

    (f) CBS MUM 缺少0x00000002服务\packages\Package_114_for_KB955839~31bf3856ad364e35~amd64~~6.0.1.0.mum (Package_114_for_KB955839 f) CBS MUM 缺少0x00000002服务\packages\Package_83_for_KB955839~31bf3856ad364e35~amd64~~6.0.1.0.mum

    再往下看,你将看到:

    不可用的修复文件:
    servicing\packages\Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1.0.mum
    servicing\packages\Package_for_KB979309~31bf3856ad364e35~amd64~~6.0.1.0.mum
    servicing\packages\Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1.0.cat
    servicing\packages\Package_for_KB979309~31bf3856ad364e35~amd64~~6.0.1.0.cat

将这些文件复制到:%systemroot\Windows\Servicing\Packages。

  1. 首先需要控制该文件夹。 为此,请使用以下命令:

    takeown /F c:\Windows\Servicing\Packages /D y /R
    
  2. 现在,使用以下命令分配完全控制。 它将授予你对目录的完全控制权限:

    cacls c:\Windows\Servicing\Packages /E /T /C /G "UserName": F
    
  3. 现在,需要从 checksur 日志中收集丢失或损坏的文件:下载缺少文件的 KB 文件。

    servicing\packages\Package_for_ KB978601 ~31bf3856ad364e35~amd64~~6.0.1.0.mum

  4. 使用以下命令解压缩它们:

    Expand -F:\* UpdateKBXXXX.msu x:\DestinationDirectory
    
  5. 展开后,会看到 UpdateKBXXXX.cab 文件。 也可以将其展开:

    Expand -F:\* UpdateKBXXXX.CAB x:\DestinationDirectoryCAB
    

    在此 cab 中,需要获取两个文件:update.mum 和 update.cat。

  6. 重命名收集的 update.mum,并完全按照checksur.log中的原样 update.cab 文件:

    例如:KB978601的 update.mum 将Package_for_ KB978601 ~31bf3856ad364e35~amd64~~6.0.1.0.mum
    对所有其他丢失/损坏的文件执行相同的操作,并将其放入 checksur.log (/servicing/packages) 中指定的目录中。

完成这些步骤后,问题应得到修复,无需重启。

注意

如果服务器管理器在执行这些步骤后仍无法正常工作,请再次运行更新就绪工具,并重复检查上述步骤。