Monday, February 20, 2012

Windows error 0x800F0818

I should start my blog thanking "Aritom Chilaru" who inspired me to start blogging.  I started searching for a resolution of an issue faced on Windows server 2008 R2 and had found solution Aritom's site and the steps are detail and I felt like I should start to blog on posting solutions to the issues I faced which might help others, so here I start .....

Issue:
Had trouble opening Server Manager Or Windows update result in 0x800F0818 error Or Event Viewer having logs with many entries with following error 
Could not discover the state of the system. An unexpected exception was found:
System.Runtime.InteropServices.COMException (0x800F0818): Exception from HRESULT: 0x800F0818
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at Microsoft.Windows.ServerManager.ComponentInstaller.CreateSessionAndPackage(IntPtr& session, IntPtr& package)
   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(Object state)

Had come across the link http://www.flexlabs.org/2011/02/server-manager-2008-failing-detect-system-status , still posting the contents if the link stops working in future.

Steps to FIX:
This error indicates CBS store is corrupted and is related to a corrupted update package.

To find which package is corrupted and to find which files to be repaired.  You need to download and install the System Update Readiness Tool and run this tool which generate logs in C:\Windows\Logs\CBS directory. Open CheckSUR.log of the following format

Cut-Pasted from "Aritom Chilaru"'s Post
==================================================
Checking System Update Readiness. 
Binary Version 6.1.7601.21645 
Package Version 11.0 
2011-02-24 11:09 
  
Checking Windows Servicing Packages 
  
Checking Package Manifests and Catalogs 
(f) CBS MUM Corrupt 0x00000000  servicing\Packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum
Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name 
  
Checking Package Watchlist 
  
Checking Component Watchlist 
  
Checking Packages 
  
Checking Component Store 
  
Summary: 
Seconds executed: 273 
 Found 1 errors 
  CBS MUM Corrupt Total count: 1 
  
Unavailable repair files: 
    servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum 
    servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.cat 

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

Note the KB number and download the package directly For eg., http://support.microsoft.com/kb/2488113
Download .msu file and change the extension to .cab and on extracting .cab, there will be another .cab file in it.  On opening the cab file, We can find many files in there.  Find the files to be repaired and copy them and store it in a folder.

Now these files are to be copied to %windir%\servicing\packages.

Now we have to acquire permissions to copy to replace these files (which are owned by SYSTEM).

click start, type "cmd".  Right click on cmd.exe and click on "Run as Administrator".
Execute the following commands to acquire ownership and permissions:
=================================================
takeown /f %windir%\servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum
takeown /f %windir%\servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.cat
icacls %windir%\servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum /setowner <username>:F
icacls %windir%\servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.cat /setowner <username>:F
=================================================

Now, we can copy those stored files to %windir%\servicing\packages

We can rerun System Update Readiness Tool again and check CheckSUR.log to check errors are resolved.  We should find "No errors detected" at the end of the file.

No comments:

Post a Comment