Unexpected error refreshing server manager on 2008 R2 server

Hi guys,

I just installed a clean and new W2K8 R2 server and one of the first errors i got after installing a couple (43) Windows patches was this one:

On certain Windows Server 2008 R2 machines you may experience the Server Manager being unable to open Roles and/or Features in the MMC. The error it usually comes back with is Unexpected error refreshing Server Manager: The remote procedure call failed. (Exception from HRESULT: 0x800706BE).

If your Server Manager is crashing and you’re unable to add Roles or Features this article will talk you through a number of steps which may help you resolve the issue.

Step 1 – Download & Install System Update Readiness Tool (KB947821)

The first step in trying to diagnose this is to download and install KB947821 on the server which is having the problem with System Manager and generating the 0x800706BE refresh error. You can download it from http://support.microsoft.com/kb/947821

The System Update Readiness Tool, runs a onetime scan for inconsistencies that might prevent future servicing operations. This scan typically takes less than 15 minutes to run. However, the tool might take significantly longer on some computers. The Windows Update progress bar is not updated during the scan, and progress seems to stop at 60% complete for some time. This behavior is expected. The scan is still running and you should not cancel the update. If you are prompted to restart your computer, do so.

Step 2 – Analyze KB947821 output log file

After you install KB947821 on your computer, you need to inspect the output log file it left behind. You can find the file in: C:WindowsLogsCBSCheckSUR.log

The log should show what files have been detected as corrupt or missing from/in the C:windowsservicingpackages folder. For instance, on our test machine they were shown as:

2010-10-07 09:30:43, Info                  CBS    Failed to get session package state for package: Package_3_for_KB975467~31bf3856ad364e35~amd64~~6.1.1.0 [HRESULT = 0x80070490 - ERROR_NOT_FOUND]
2010-10-07 09:30:43, Info                  CBS    Failed to get session package state for package: Package_2_for_KB975467~31bf3856ad364e35~amd64~~6.1.1.0 [HRESULT = 0x80070490 - ERROR_NOT_FOUND]

You might also want to have a look at the CheckSUR.persist.log. In our case it looked like this:

=================================
Checking System Update Readiness.
Binary Version 6.1.7600.20593
Package Version 7.0
2010-04-14 09:56

Checking Windows Servicing Packages

Checking Package Manifests and Catalogs
(f) CBS MUM Corrupt 0x00000000 servicingPackagesPackage_for_KB976264_RTM~31bf3856ad364e35~amd64~~6.1.2.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: 72
 Found 1 errors
  CBS MUM Corrupt Total count: 1

Unavailable repair files:
 servicingpackagesPackage_for_KB976264_RTM~31bf3856ad364e35~amd64~~6.1.2.0.mum
 servicingpackagesPackage_for_KB976264_RTM~31bf3856ad364e35~amd64~~6.1.2.0.cat

(w) Unable to get system disk properties 0x0000045D IOCTL_STORAGE_QUERY_PROPERTY Disk Cache

We also checked the servermanager.log and found that the CbsUpdateState.bin file in the C:Windowssystem32ServerManagerCache folder is missing.

4652: 2010-10-14 17:43:53.856 [Provider]                  C:Windowssystem32ServerManagerCacheCbsUpdateState.bin does not exist.
4652: 2010-10-14 17:43:53.965 [CBS]                       IsCacheStillGood: False.
4652: 2010-10-14 17:44:13.356 [CBS] Error (Id=0) Function: 'CreateSessionAndPackage()->Session_OpenPackage' failed: 800706be (-2147023170)
4652: 2010-10-14 17:44:13.419 [ExceptionHandler] Error (Id=0) An unexpected exception was found:
System.Runtime.InteropServices.COMException (0x800706BE): The remote procedure call failed. (Exception from HRESULT: 0x800706BE)
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)

Step 3 – Copy missing or corrupt files

In order to perform this step, you’ll need access to a machine which has a working Server Manager. Copy the files listed as corrupted/missing from C:windowsservicingpackages on the working machine to the server which is exhibiting the HRESULT 0x800706BE error. You may need to change the ownership of the files on the destination machine to your user account as well as give yourself write permissions on the files before Windows allows you to overwrite them.

You can take ownership manually or you can use this script.

Once done, start Server Manager and see if that fixes the error. To be doubly sure, check the contents of the C:Windowssystem32ServerManagerCache folder – there should be two files there: CbsUpdateInfo.bin and CbsUpdateState.bin. If these files still don’t exist after Server Manager starts you haven’t completely fixed the 0x800706BE error.

Server Manager CbsUpdateInfo.bin CbsUpdateState.bin

Step 4 – Copy all files in C:windowsservicingpackages folder

If you’re still unable to get Server Manager started, it means that there may be other problems and we need to overwrite all the packages in the C:windowsservicingpackages folder. The first step we need to do is take ownership of all the files. To do this, launch a Command Prompt as an Administrator, and I mean right click the Command Prompt icon and select Run As Administrator. At the command prompt execute:

takeown /F c:WindowsServicingPackages /D y /R

The takeown command will give you ownership of the files, but you still need to give yourself write access to the files in order to change them. In the same command prompt window execute the following command: (replace username with your username)

cacls c:WindowsServicingPackages /E /T /C /G "username":F

Now copy all the files from the C:windowsservicingpackages folder on a working server. Make sure that the source server has been patched to the same level and has the same roles/features installed as the destination server.

Step 5 – Start Server Manager and check Cache folder

Try starting Server Manager and check if you’re still getting the error. In all our tests, the above steps have been able to resolve 99% of all Server Manger problems related to error 0x800706BE and 1601. Jus to be on the safe side, check the contents of the C:Windowssystem32ServerManagerCache folder and see that the two .bin files are now visible.

Conclusion

This article has demonstrated a quick and easy way to solve the errors associated with Server Manager and the 0x800706BE and 1601 errors that it exhibits when trying to install Roles or Features. If the problem is not resolved by applying Microsoft KB947821, we have shown a reliable way to fix the 0x800706BE and 1601 errors by copying all files in C:windowsservicingpackages from anther working Windows Server 2008 R2 server.

References

System Update Readiness Tool (KB947821)
http://support.microsoft.com/kb/947821

Advanced guidelines for diagnosing and fixing servicing corruption
http://technet.microsoft.com/en-us/library/ee619779%28WS.10%29.aspx

Leave a Reply

Your e-mail address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.