这几天在做实验,一台服务器安装了Windows 2008 R2 X64系统,当我想安装服务器角色的时候,发现无法安装,出现了“服务器刷新失败”,点击它弹出对话框提示“刷新服务器管理器时出现意外错误: 异常来自 HRESULT:0x800F0818有关详细信息,请参阅事件日志: 诊断、事件查看器、应用程序和服务日志、Microsoft、Windows、服务器管理器、操作” 然后我就查看日志,日志内容如下:

 

无法发现系统的状态。找到一个意外的异常:

System.Runtime.InteropServices.COMException (0x800706BE): 远程过程调用失败。 (异常来自 HRESULT:0x800706BE)

   在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)

   Microsoft.Windows.ServerManager.ComponentInstaller.CreateSessionAndPackage(IntPtr& session, IntPtr& package)

   Microsoft.Windows.ServerManager.ComponentInstaller.InitializeUpdateInfo()

   Microsoft.Windows.ServerManager.ComponentInstaller.Initialize()

   Microsoft.Windows.ServerManager.Common.Provider.RefreshDiscovery()

   Microsoft.Windows.ServerManager.LocalResult.PerformDiscovery()

   Microsoft.Windows.ServerManager.ServerManagerModel.CreateLocalResult(RefreshType refreshType)

   Microsoft.Windows.ServerManager.ServerManagerModel.InternalRefreshModelResult(Object state)

 

开始纠结了,手上有很多Win2008R2的服务器,还是第一次遇到这个问题,开始求助于强大的Google,终于让我在一个国外的博客上找到了解决办法。

 

解决办法:

1、  首先下载并安装“系统更新准备工具”地址:http://support.microsoft.com/kb/947821

2、  获取c:\Windows\Servicing\Packages目录的所有权

takeown /F c:\Windows\Servicing\Packages /D y /R

3、  赋予登陆用户对c:\Windows\Servicing\Packages目录完全控制权限

cacls c:\Windows\Servicing\Packages /E /T /C /G "UserName":F  //username为当前登陆用户名

4、打开C:\Windows\Logs\CBS目录下的CheckSUR.log文件,会看到类似如下内容

=================================

Checking System Update Readiness.

Binary Version 6.1.7600.20667

Package Version 8.0

2010-08-18 13:05

 

Checking Windows Servicing Packages

 

Checking Package Manifests and Catalogs

(f)    CBS MUM Corrupt 0x00000000       servicing\Packages\Package_for_KB2286198_RTM~31bf3856ad364e35~amd64~~6.1.1.1.mum           Expected file name Package_for_KB2286198~31bf3856ad364e35~amd64~~6.1.1.1.mum does not match the actual file name

 

Checking Package Watchlist

 

Checking Component Watchlist

 

Checking Packages

 

Checking Component Store

 

Summary:

Seconds executed: 140

 Found 1 errors

  CBS MUM Corrupt Total count: 1

 

Unavailable repair files:

       servicing\packages\Package_for_KB2286198_RTM~31bf3856ad364e35~amd64~~6.1.1.1.mum

       servicing\packages\Package_for_KB2286198_RTM~31bf3856ad364e35~amd64~~6.1.1.1.cat

5、下载CheckSUR.log出现的KB2286198文件到c盘,然后运行如下命令

C:\Windows\system32>Cd\

C:\>Expand –F:* Windows6.1-KB2286198-x64.msu c:\temp  

C:\>Cd temp

C:\Temp>Expand –F:* Windows6.1-KB2286198-x64.cab c:\temp\cab  

 

6、打开c:\temp\cab 目录找到CheckSUR.log中出现的两个文件

 

Package_for_KB2286198_RTM~31bf3856ad364e35~amd64~~6.1.1.1.mum

Package_for_KB2286198_RTM~31bf3856ad364e35~amd64~~6.1.1.1.cat

 

7、将这两个文件复制到c:\Windows\Servicing\Packages目录,覆盖已有的文件

到此问题解决

 

参考文章:

How to fix Server Manager Errors after installing updates (HRESULT:0x800F0818 / HRESULT:0x800B0100)