It’s that time of year again, and as always, when I visit the family over xmas there are various PC issues to resolve. This year there were blessedly few issues, but there was 1 problem that it took me quite a while to track down and resolve. One of the families PCs was failing to install Windows 7 service pack 1. It’s a fairly new PC and came with an OEM install of Windows 7 x64 Home Premium, all legit and activated. It also has up-to-date anti-virus protection, and other than the SP1 install problems it seemed to be in excellent working order.
The error thrown by windows update was error 80073712, which according to windows help (and the Microsoft help page) “occurs when the Windows component store is corrupt”. Microsoft provide a tool, called the System Update Readiness tool (KB947821) which it supposed to fix this problem. I downloaded the tool and ran it (which took quite a long time), after which it reported success. I then reattempted the SP1 update but it still failed.
After further research I discovered this is an issue which has plagued both 32 and 64 bit versions of Windows, ever since Vista. It seems to affect all service pack releases (KB936330, KB948465 and KB976932) Hence the System Update Readiness tool being for Windows Vista, 7, 2008 and 2008 R2. There are lots of unhelpful suggestions available, but the actual solution is fairly simple, as long as you have access to another PC with the same OS installed! In my case I had my laptop with me, running Windows 7 x64 SP1. I’m not sure if having SP1 may sometimes make a difference, or if having Professional instead of Home Premium may likewise sometimes make a difference, but in my case these differences didn’t matter — my solution worked just fine. For more detailed information, I found the Microsoft TechNet article “Advanced guidelines for diagnosing and fixing servicing corruption” very useful.
Firstly, download and install the System Update Readiness tool. If you’re lucky this will just fix the problem the first time. However, before attempting the service pack install, we’re going to check…
Click on start and in the search box type “notepad %windir%\logs\cbs\checksur.log” to open the readiness tool’s log file.
At the bottom of the file there should be a summary which looks like
Seconds executed: 685
Found 2 errors
Fixed 2 errors[/code]
If the number of errors fixed is the same as the number found then you should be sorted — you can now just go ahead and install the service pack or windows update as normal. However, in my case it wasn’t, so…
The log file identifies any files it couldn’t fix. Files it can’t fix are ones that aren’t present on the system for some reason. You need to get them from another PC running the same version of Windows
In the log file, under the section called “Checking Component Store” there will be a list of files that are missing or corrupt. I had 4 listed as below…
LDDMCore.ptxml in amd64_microsoft-windows-lddmcore_31bf3856ad364e35_6.1.7600.16385_none_07bd8a45fd3dcc23
LDDMCore.ptxml in amd64_microsoft-windows-lddmcore_31bf3856ad364e35_6.1.7600.20715_none_0892dc3716229fcb[/code]
The manifest files can be found (on another PC) in %windir%\winsxs\Manifests and the folders containing the other files are found in %windir%\winsxs
Copy the missing files to the PC with the problem, into the following locations
.manifest files into %Windir%\Temp\CheckSUR\winsxs\manifests\
.mum and .cat files into %Windir%\Temp\CheckSUR\servicing\packages\
any files from the folders with the long names (in my case the 2 LDDMCore.ptxml files) go into the appropriate directory in %windir%\winsxs
This final step may require taking ownership and changing the permissions of the directories in question.
Now re-run the System Update Readiness tool. Once re-run repeat step 2 to open the log file, and confirm that the summary section now says the number of fixes matches the number of problems.
Assuming the value for fixes is now equal to the value for problems found, you can now re-run the service pack or windows update, which should succeed.
If for some reason you’re still having problems, there are some other things you can try…
1. Run the Windows Update troubleshooter
- click on start, type “troubleshooting” and press enter.
- In the control panel window that opens click on “Fix problems with Windows Update”.
- Note: this applies to Windows 7, but the precise details may be different under other systems.
2. Clear out the windows update cache…
- Click start, type services.msc
- In the services admin window, scroll down to “Windows Update”, right click on it, and click stop.
- Click start, type %windir%\SoftwareDistribution
- Select all files and delete them. If any won’t delete you can take ownership and change permissions of them, or try again in safe mode.
- Restart the “Windows Update” service from the services admin window.
- Re-run the windows update troubleshooter
Extra things you can try
1. A disk check
- It’s fairly unlikely, but it could be disk corruption
- Open my computer, right click on the system drive (usually Drive C) and select properties
- Click on the tools tab, and click “Check now”
- Make sure both boxes are ticked and click start
- You will probably have to restart, and the check might take a long time
2. The system file checker
- Click start, type sfc /scannow
- You might need an installation disk
- This might take a while
3. Delete the pending.xml file in %windir%\winsxs
- Click on start, type %windir%\winsxs
- Scroll down and locate the file pending.xml
- Take ownership and change the permissions of the file
- Delete the file
- Credit for this to TyeGuy on TechArena forums
- Please note that Microsoft do not recommend doing this (see comments below, thanks niemiro). If you’ve got this far and it still isn’t working, drop us a comment and we’ll see what we can do to help!
The last resort
Obtain a windows installation DVD, rerun setup and carry out a repair install. You will have to reinstall all updates.
What do you think? Drop us a comment below! If you would like to subscribe please use the subscribe link on the menu at the top right. You can also share this with your friends by using the social links below. Cheers.
No tengo el archivo pending.xml
Por lo demás, he hecho todo excepto lo de cargar de nuevo el Sistema Operativo, y el error 80073712 persiste
This article really saved my day but niemiro’s comments (and articles and his KB_Extractor) were also essential. I finally didn’t have another Windows 7 x64 installation with the files I needed so I had to identify, download and extract the respective windows update files. Lots of work — especially the click-intensive permission changing part — but I am now finally installing the Service Pack as I write this comment… Thanks! 🙂
A pleasure. Thanks for the feedback. I’ll look at updating the article and including links to some of the files needed. Trial ISO images of windows 7 and newer installation disks can be downloaded direct from Microsoft, so that is probably the easiest route.
Man, thanks so much. All the Microsoft stuff didn’t help me, so I’m glad I found this great article — I’ve now fixed it all.
I might very well consider doing that. Unless you would like to write a guest post? or maybe even a full guide? I don’t want to tread on the toes of your own site though — if you’ve got a full guide yourself i’m happy to just link it — credit where it’s due afterall
Can I please point out that Solution 3 (deleting pending.xml) is incredibly dangerous, is the not solution to this problem, and is against all Microsoft guidelines. For the full details about why it is a very, very bad idea to delete this file, please read this page: http://blogs.technet.com/b/joscon/archive/2011/03/11/why-you-don-t-want-to-edit-your-pending-xml-to-resolve-0xc0000034-issues.aspx
Thanks for the info! The article you link to is actually about editing the pending.xml file, rather than deleting it, but I take your point — deleting it would appear to present the same problems as editing. I’ve rejigged the article and added a warning. I didn’t have to touch the pending.xml file and I would be surprised if it is necessary.
I deal with these logs quite a bit, and you are correct that deleting pending.xml is just as bad as editing it (my link is misleading). In fact, the whole link is slightly odd, because the common solution was infact to delete the file. Some people edited the file, and removed problematic lines, but far more commonly, the file was just removed.
The pending.xml is used to store changes which are to be made over a re-boot. Therefore, this fix only applies when a computer cannot boot after updating, fails to configure and reverts, gets stuck on that white writing on black screen updating page, etc. etc. It is not used for fixing errors in a CheckSUR.log. In fact, it was commonly used to fix a 0xC0000034 error upon restart (Safe Mode will also spit back this error)
Unfortunately, I have recently had to take my website offline, however, it will be back online in a few weeks. Basically, it contains a comprehensive list (absolutely comprehensive, I extracted it from the CheckSUR.exe itself) list of every possible error and warning SURT can throw, and then gave my comments on how to fix it, and next steps.). I shall post a comment here when I bring it back online again, if you are interested.
Also, as an additional point, I personally (when working on the forum — I create lots of fixes for CheckSUR logs daily), instead of finding files on other computers, especially when it comes to language packs, I often don’t have the files. Personally, I extract the files from the updates themselves. Google search for the KB Number, and then download it from Microsoft, and then extract the update, using instructiosn (for example here: http://www.sevenforums.com/tutorials/155584-windows-update-extract-update.html)
To save myself time, I have automated tools which automagically extract the update, find the required files, create a fix, and spit back some BBCode for me to paste to the user! I also have a tool for the user to run which downloads and runs SURT if required, analyzes the log file, downloads the updates required, extracts them, extracts the correct files, forms a fix, and fixes the system. These are not yet released, but will be released at the same time as my new website.
Finally, did you know that if you don’t want to fiddle with permissions, you can put .mum and .cat files into C:\Windows\Temp\CheckSur\Servicing\Packages\ and .manifest files into C:\Windows\Temp\CheckSur\Servicing\Manifests, and re-run SURT, and it will sort it out for you.
However, it does not work for payload files, only .manifest, .cat, and .mum, and .cat and .mum files MUST be paired up.
If you are interested, I can send more details.
Other than that, I thought the article was excellent, and the website as well. I haven’t truly set foot here before, and I shall certainly be having a good look now!
It has been great to talk to you!
Wow! You really seem to know your stuff on this one. I wish your site had been up 2 days ago when I was trying to fix this — this article would just have been a thank you and a link!
I suspected it might be possible to get the files from updates, but it was quicker to pull them from the laptop than to locate the right update, download it, and extract it. An automatic tool would be the optimal solution.
You’re welcome to send more details, but if you’re gonna stick them on your new site that’s just as good — as long as they’re public its all good. Give me a shout when you’re back up and I’ll have a look (and stick a link into the article above).
Its been a pleasure this end too!
I have had a look around your website, and I really like it! An excellent website! I completely understand that for you, and most people, grabbing the files from another computer is the best and simpest way. Indeed, I used to do that, and still do, occasionally, when I can’t work out the KB article a file originates from. However, I just thought that you might like to know the way I do things, especially in bulk and automatically.
What I particularly like about this article, for I do really like it, is that you have truly captured the spirit of fixing corruptions detected by SURT. There is a tendancy for people who are not familiar with a certain log file to just ignore it. With equal parts thought and Google, most log files can be cracked. And also, you have captured the read log, extract file names, find replacements, replace damamged files. Despite SURT having about 4 ways to tell you that a file is corrupt (see note at end) it all boils down to this. All to often people jump on the Repair Install bandwagon when a Windows Update error comes up. And I might have been about to fix it in 30 seconds, a few megabytes of downloading and an executation of one of my programs. And I often have to fight to post first to prevent it. Sad really.
Also, and you may not quite know it yet, what you have outlined here fixes far more than just 0×80073712. In fact, it will fix many Windows Update errors, including the most common of all: 0x800B0100. You could very easily, if you wished, repost this with a few tweaks as a general CheckSUR.log fixing guide. You really could.
Anyway, I bet you are really glad that it is all over now! I really do like your website, and this post!
It has been wonderful to talk to you!
P.S. From earlier, SURT says that a manifest is corrupt in any of these ways (all very subtly different)
(f) CSI Manifest All Zeros
(f) CSI Manifest and S256H Do Not Match
(f) CSI Manifest Bad XML
(f) CSI Manifest Corrupt
(f) CSI Manifest Failed Catalog Check
(f) CSI Manifest Missing
(f) CSI Manifest Too Small
(f) CSI Manifest Unable to Hash
(f) CSI Manifest Zero Length
lol. 146 possible returns with a lot of repetition. SURT logs are (mostly) easy!
Sorry for the double post! I noticed that you referenced Microsoft’s guidelines on CheckSUR.log analysis, but there is in fact a second generalised CheckSUR.log analysis tutorial here: http://www.sevenforums.com/tutorials/108805-system-update-readiness-tool-checksur-log-file-analyzis.html
I mention it just in case you haven’t seen it before. For anything in more depth (there are 146 possible returns for the log), you will need more specialist pages, for there are no more generic tutorials.
I hope this helps 🙂