这几天在做实验,一台服务器安装了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目录,覆盖已有的文件
到此问题解决
 

小编注:个人感觉上面的操作不太容易,经过测试比较麻烦,还是重新做下系统,然后安装好iis,再安装补丁。