这几天在做实验,一台服务器安装了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)