本文提供有关无法查看角色和功能并在服务器管理器中接收错误代码0x800706BE的问题的解决方法。
原始 KB 数: 2461206
症状
请考虑以下情况:
- 你有一台运行 Windows Server 2008 或 Windows Server 2008 R2 的计算机。
- 打开服务器管理器窗口以查看/添加/删除角色和功能。
在这种情况下,角色和功能不会在“服务器管理器”窗口中显示为带有黄色感叹号。 如果尝试打开服务器管理器底部,将收到以下错误消息:
服务器管理器 刷新服务器管理器时发生意外错误:远程过程调用失败。 (来自 HRESULT 的异常: 0x800706BE) 有关更多信息,请参阅事件日志:诊断、事件查看器、应用程序和服务日志、Microsoft、Windows、服务器管理器、操作。)
同时,以下事件将添加到 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 文件已损坏。
解决方案
下面是解决此问题的步骤:
- 从以下位置获取 Microsoft 更新就绪工具:https://support.microsoft.com/kb/947821
- 在有问题的计算机上运行Microsoft更新就绪性工具。
- 完成扫描后,打开 %Systemroot%\Windows\logs\CBS\Checksur.log 文件。
- 你检查文件中的损坏数据。 下面是一些示例:
(f)CBS MUM 已损坏 0x00000000 servicing\Packages\Package_for_KB978601~31bf3856ad364e35~amd64
6.0.1.0.mum 预期的文件名 Package_for_KB978601_server~31bf3856ad364e35~amd646.0.1.0.mum 与实际文件名不匹配 (f)CBS MUM 已损坏 0x00000000,servicing\Packages\Package_for_KB979309~31bf3856ad364e35~amd646.0.1.0.mum。预期的文件名 Package_for_KB979309_server~31bf3856ad364e35~amd646.0.1.0.mum 与实际文件名不匹配。
或
(f)CBS MUM 已损坏 0x800B0100 servicing\Packages\Package_for_KB978601~31bf3856ad364e35~amd64
6.0.1.0.mum servicing\Packages\Package_for_KB978601~31bf3856ad364e35~amd646.0.1.0.cat 程序包清单无法通过相应的目录文件验证 (f)CBS MUM 已损坏 0x800B0100 servicing\Packages\Package_for_KB979309~31bf3856ad364e35~amd646.0.1.0.mum servicing\Packages\Package_for_KB979309~31bf3856ad364e35~amd646.0.1.0.cat 程序包清单无法通过相应的目录文件验证
或
(f)CBS MUM 缺失 0x00000002 servicing\packages\Package_114_for_KB955839~31bf3856ad364e35~amd64
6.0.1.0.mum (f)CBS MUM 缺失 0x00000002 servicing\packages\Package_83_for_KB955839~31bf3856ad364e35~amd646.0.1.0.mum
再往下看,你将看到:
不可用的修复文件: servicing\packages\Package_for_KB978601~31bf3856ad364e35~amd64
6.0.1.0.mum servicing\packages\Package_for_KB979309~31bf3856ad364e35~amd646.0.1.0.mum servicing\packages\Package_for_KB978601~31bf3856ad364e35~amd646.0.1.0.cat servicing\packages\Package_for_KB979309~31bf3856ad364e35~amd646.0.1.0.cat
将这些文件复制到:%systemroot\Windows\Servicing\Packages。
-
首先需要控制该文件夹。 为此,请使用以下命令:
takeown /F c:\Windows\Servicing\Packages /D y /R -
现在,使用以下命令分配完全控制。 它将授予你对目录的完全控制:
cacls c:\Windows\Servicing\Packages /E /T /C /G "UserName": F -
现在,需要从
checksur日志中收集缺失或损坏的文件:下载缺失文件的 KB 文件。
servicing\packages\Package_for_ KB978601 ~31bf3856ad364e35~amd64~~6.0.1.0.mum
-
使用以下命令解压缩它们:
Expand -F:\* UpdateKBXXXX.msu x:\DestinationDirectory -
展开后,会看到一个 UpdateKBXXXX.cab 文件。 也可以将其展开:
Expand -F:\* UpdateKBXXXX.CAB x:\DestinationDirectoryCAB在此 cab 中,需要获取两个文件:update.mum 和 update.cat。
-
重命名收集的 update.mum 和 update.cab 文件,就像在checksur.log中一样:
例如:KB978601 的 update.mum 将为 Package_for_KB978601~31bf3856ad364e35~amd64~~6.0.1.0.mum 对所有其他缺失/损坏的文件执行相同的操作,并将其置于checksur.log(/servicing/packages)中指定的目录中。
执行这些步骤后,应修复此问题,无需重新启动。
注释
如果在执行这些步骤后服务器管理器不起作用,请再次运行更新准备工具,然后仔细检查上述步骤。