Resolve: Error 0x800B0100 when you try to install Windows Updates or Microsoft Updates
Resolve: Error 0x800B0100 when you try to install Windows Updates or Microsoft Updates
I recently had to re-install a MultiPoint server and with over 80 updates I guess I should not be surprised something went wrong. I ended up trying to install one update at a time and I was successful in getting about half of them installed, but the rest they would through Windows Update Errors like 0x800B0100 all the time. At that point I was truly out of luck and all of my research online lead me to repairing the Microsoft Update Database. Unfortunately this did not resolve my issue but based on the sheer ammount of information on this it seems like 9 out of 10 times this should be the solution for your troubles. I ended up starting from a fresh Windows MultiPoint Server 2012 installation but this might help you if you are getting the following errors: 0x800B0100:
The first option allows you to see if the system has already identified a corruption. If it has been already identified then the system will record this in the registry. To perform this quick check you need only to execute the following command:
- DISM.exe /Online /Cleanup-image /Checkhealth
In order to perform the repair process first you need to perform a health scan to determine if the store is reparable or not and to identify all existing corruptions. Opening a command prompt (Powershell would do) as an Administrator run the following command to perform the health scan:
- DISM.exe /Online /Cleanup-image /Scanhealth
Once it is completed it should report if it found any corruptions and if it is reparable. This task may take several minutes although because it is a read only operation it should not take quite as long as the actual fixing operation (Think 20 minutes on average there).
From the output see if there are any corruptions and if any of them can be fixed. Once you’ve done that execute the following command that will perform the fixes. The two previous commands are read only operations and will not fix any of the corruptions. Notice that instead of the /ScanHealth switch you’ll be using the /RepairHealth one.
- DISM.exe /Online /Cleanup-image /Restorehealth
The thing to keep in mind is that this is a sensitive operation as it will be working with the Windows Update Store and if you lose power in the middle of a fix you might make the corruption worst… so don’t be rebooting in the middle of this operation or performing other activities on the machine that might interfere.
Also, note the following when using this method:
- The CBS.log file would be available to see what fixes were identified/fixed and their current status.
- Because this also works in PowerShell you can script it if you need to execute it on other computers across the network.
- You can configure your Windows Update for any of three sources (Internet, WSUS or WIM). Keep in mind that if the corruption is in the WSUS server DISM will not be able to fix the corruption. Also, if you use a local source WIM you need to make sure the patch level is the same as the one of the computer being fixed. If it is not then DSIM won’t be able to repair as there are different updates in the image and the computer.
PowerShell Commands
As mentioned earlier you can also use DSIM with PowerShell, but also PowerShell has commands available to repair Windows:
- Repair-WindowsImage -Online -CheckHealth
- Repair-WindowsImage -Online -ScanHealth
- Repair-WindowsImage -Online -RestoreHealth
As you would imagine they work in the exact same way as the Command Prompt ones. CheckHealth only checks the registry to identify known previously corrupted cases. ScanHealth will perform a more in depth analysis but will not perform any fixes. And finally RestoreHealth will perform the fixes for the in depth analysis performed.
Logging
As you would expect this tool logs the results of its operations on a file in the system drive. It is important to look at the logs to understand what is happening and to better address the issues that arise.
Each of the following logs serves a different purpose. The recommended approach is for you to make a copy of the files to another location and open them there as they are system files and during an operation they are accessed (you wouldn’t want to interfere with that right?)
C:\Windows\Logs\CBS\CBS.log
C:\Windows\Logs\DISM\dism.log
Each of the logs will offer information on their current status as well as a summary at the end of the operation like this one for CBS:
Summary:
Operation: Detect only
Operation result: 0x0
Last Successful Step: CSI store detection completes.
Total Detected Corruption: 7
CBS Manifest Corruption: 2
CBS Metadata Corruption: 0
CSI Manifest Corruption: 2
CSI Metadata Corruption: 0
CSI Payload Corruption: 3
Total Repaired Corruption: 0
CBS Manifest Repaired: 0
CSI Manifest Repaired: 0
CSI Payload Repaired: 0
CSI Store Metadata refreshed: TrueTotal Operation Time: 1685 seconds.
and for DISM:
Summary:
Operation: Detect only
Operation result: 0x0
Last Successful Step: CSI store detection completes.
Total Detected Corruption: 7
CBS Manifest Corruption: 2
CBS Metadata Corruption: 0
CSI Manifest Corruption: 2
CSI Metadata Corruption: 0
CSI Payload Corruption: 3
Total Repaired Corruption: 0
CBS Manifest Repaired: 0
CSI Manifest Repaired: 0
CSI Payload Repaired: 0
CSI Store Metadata refreshed: True
which as you probably have realized the summaries are the same in both logs, but the rest of the content differs.
1 Response
[…] you read my previous post that reads quite similarly to this then you know you get lots of 0x800B0100 error messages when you run Windows Update for the first […]