Sunday, June 20, 2010

Unexpected error refreshing Server Manager

I had a Windows Server 2008 x64 server where I could not go to server manager roles or features. I would get the following error message:

Unexpected error refreshing Server Manager: No signature was present in the subject. (Exception from HRRESULT: 0x800B0100)

For more information, see the event log: Diagnostics, Event Viewer, Applications and Services Logs, Microsoft, Windows, System Manager, Operational.



I checked the server manager logs (C:\Windows\logs\ServerManager.log) the following error existed.

10280: 2010-02-01 12:17:39.000 [Extensibility] Error (Id=0) Could not detect the sku extensibility path: -1073418222
10280: 2010-02-01 12:17:41.538 [LoadExtensionAssemblies] No extension assemblies registered.
10280: 2010-02-01 12:17:41.843 [OobOptionalComponentInfo] Loading OCs from registry.
10280: 2010-02-01 12:17:44.269 [CBS] LastModified CBS Time (UTC): 01/17/2010 00:21:06
10280: 2010-02-01 12:17:44.275 [Provider] C:\Windows\system32\ServerManager\Cache\CbsUpdateState.bin does not exist.
10280: 2010-02-01 12:17:44.275 [CBS] IsCacheStillGood: False.
10280: 2010-02-01 12:17:44.276 [CBS] CreateSessionAndPackage: begin
10280: 2010-02-01 12:17:44.788 [CBS] Error (Id=0) Function: 'CreateSessionAndPackage()->Session_OpenPackage' failed: 800b0100 (-2146762496)
10280: 2010-02-01 12:17:44.954 [ExceptionHandler] Error (Id=0) An unexpected exception was found:
System.Runtime.InteropServices.COMException (0x800B0100): No signature was present in the subject. (Exception from HRESULT: 0x800B0100)
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.Initialize(DocumentCollection documents)
at Microsoft.Windows.ServerManager.ServerManagerModel.InternalRefreshModelResult(Object state)




This wasn't very useful...

I then checked the CBS logs (%windir%\logs\cbs\cbs.log):

Throughout the log file in random locations it kept repeating:

Mark store corruption flag because of package: Package_for_KB973037~31bf3856ad364e35~amd64~~6.0.1.0. hr: 0x800b0100


I then went and downloaded the "System Update Readiness Tool" which checks the CBS component corruption. After it finished running it dumps its results to C:\Windows\logs\CBSCheckSUR.log. In this log file it also mentioned the same KB article as the corrupt one above:

=================================
Checking System Update Readiness.
Version 6.0.6001.22275
2010-06-21 11:06

Checking Deployment Packages

Checking Package Manifests and catalogs.

Checking package watchlist.

Checking component watchlist.

Checking packages.
(f) CBS MUM Missing 0x00000002 servicing\packages\Package_for_KB973037~31bf3856ad364e35~amd64~~6.0.1.0.mum

Checking component store

Checking SMI Store
Summary:
Milliseconds: 943738
Found 1 errors
CBS MUM Missing Total Count: 1




It was now determined that the cause of the issue was from microsoft update KB973037. I went and manually downloaded the update from:

http://www.microsoft.com/downloads/details.aspx?familyid=17F5F9E0-5869-41DA-9B3B-6E67540AF1F0&displaylang=en

I renamed the .msu file to .cab to allow me to extract it. Inside the extraced file there was another .cab file Windows6.0-KB973037-x64.cab which I had to extract. The file Package_for_KB973037~31bf3856ad364e35~amd64~~6.0.1.0.mum did not exist in the directory!

As a result I had to rename the update.cat and update.mum files in the extracted directory to:
Package_for_KB973037~31bf3856ad364e35~amd64~~6.0.1.0.mum
Package_for_KB973037~31bf3856ad364e35~amd64~~6.0.1.0.cat

These renamed files need to be copied to:

C:\Windows\servicing\Packages

However by default Administrators does not have access to this folder as all installations are done by the user account "TrustedInstaller". This is because standard user accounts can also install updates (if you allow them to with group policy). To give administrators full control take ownership of the packages folder, set permissions to full control, then give folder ownership back to TrustedInstaller! This is important - if "NT SERVICE\TrustedInstaller" is not owner updates can fail to install.

Now that you have access, copy the two files you renamed into this directory.

Try and open Server Manager.

6 comments:

  1. I found something similar with out of my servers, but was unable to get it working completely. In the end I had to follow instructions at:

    http://capitalhead.com/articles/unexpected-error-refreshing-server-manager-errors-0x800706be-and-1601-on-window-server-2008-r2.aspx

    ReplyDelete
  2. THANKS A LOT!!!! solved!

    ReplyDelete
  3. Exact same issue here. I got as far as unpacking the KB CAB but was confused by the missing files. Thanks for telling me which ones to rename. This resolved my issue, thanks!

    ReplyDelete
  4. Great assistance...

    This resource helped me tremendously. I was able to resolve it by taking ownership and changing the permissions of JUST the two files I needed, then I copied them over from another working server.

    It all seems resolved now, and I can upgrade to SP1...

    -ASB: http://about.me/Andrew.S.Baker

    ReplyDelete
  5. we just wanted to solve this problem without downloading updates

    ReplyDelete
  6. Thanks so much for this. I just started a new job and I'm finding all sorts of nasty little surprises on the systems (like this issue). In our case it was a different KB article and we were missing 10 files so I just copied them from another server at the same OS level, but I was able to use 90% of your procedure and I'm very grateful that I did not have to reinvent the wheel to correct the problem.

    ReplyDelete