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). You may also find that there is also Error 1601 in the Event Log.
Introduction
On certain Windows Server 2008 R2 machines you may experience theServer 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).
Certain people have also reported finding that there is also an error being logged in the event log – Error 1601. Various reasons lead us to believe that this is an issue related to file corruption. More specifically, file corruption caused by failed Windows Updates.
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 notupdated 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:\Windows\Logs\CBS\CheckSUR.log
The log should show what files have been detected as corrupt or missing from/in the C:\windows\servicing\packages 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 servicing\Packages\Package_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:
servicing\packages\Package_for_KB976264_RTM~31bf3856ad364e35~amd64~~6.1.2.0.mum
servicing\packages\Package_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:\Windows\system32\ServerManager\Cache\ folder is missing.
4652: 2010-10-14 17:43:53.856 [Provider] C:\Windows\system32\ServerManager\Cache\CbsUpdateState.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 ServerManager. Copy the files listed as corrupted/missing from C:\windows\servicing\packages 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.
Once done, start Server Manager and see if that fixes the error. To be doubly sure, check the contents of the C:\Windows\system32\ServerManager\Cache folder – there should be two files there: CbsUpdateInfo.bin and CbsUpdateState.bin. If these files still don’t exist after ServerManager starts you haven’t completely fixed the 0x800706BE error.
Step 4 – Copy all files in C:\windows\servicing\packages 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:\windows\servicing\packages 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:\Windows\Servicing\Packages /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:\Windows\Servicing\Packages /E /T /C /G "username":F
Now copy all the files from the C:\windows\servicing\packages 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:\Windows\system32\ServerManager\Cache 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 ServerManager 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:\windows\servicing\packages from anther working Windows Server 2008 R2 server.
References
System Update Readiness Tool (KB947821)
http://support.microsoft.com/kb/947821
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
http://technet.microsoft.com/en-us/library/ee619779%28WS.10%29.aspx
Keine Kommentare:
Kommentar veröffentlichen