Advanced guidelines for diagnosing and fixing servicing corruption
Applies To: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
The purpose of this article is to provide advanced guidelines for diagnosing and fixing servicing corruptions that may occur when running the System Update Readiness Tool does not offer resolution. For more information on the System Update Readiness Tool and what symptoms can be caused by servicing corruptions, see article 947821in the Microsoft® Knowledge Base (http://go.microsoft.com/fwlink/?LinkId=165000)..
Advanced guidelines for diagnosing and fixing servicing corruption
This article applies to the following operating systems:
Windows Server® 2008
Windows Server® 2008 R2
If running the System Update Readiness Tool does not remedy the problem, you can proceed to diagnose the tool’s report and determine if it is possible to fix the corruptions manually.
The report can be found at %windir%\logs\cbs\checksur.log.
At the end of the log file, you will find a summary section that looks like:
Summary: Seconds executed: Found XX errors Fixed XX errors …
The report may fit one or more of the following patterns. Each pattern provides a description of the issue and solution to the problem.
Using the checkSUR report
The System Update Readiness Tool has fixed all found errors, as in the example below:
Summary: Seconds executed: 100 Found 10 errors Fixed 10 errors
You should no longer have any servicing corruption on your computer. If you are still getting errors after this point, use one of the following links to resolve your issue:
If you get the Unavailable repair files message, this indicates that some of the inconsistent files found by the tool cannot be fixed as the correct versions of the replacement files are not carried by the tool. After this message appears, a list of the missing files follows.
Summary: Seconds executed: 264 Found 3 errors CBS MUM Missing Total Count: 3 Unavailable repair files: servicing\packages\Package_for_KB958690_sc_0~31bf3856ad364e35~amd64~~22.214.171.124.mum servicing\packages\Package_for_KB958690_sc~31bf3856ad364e35~amd64~~126.96.36.199.mum servicing\packages\Package_for_KB958690~31bf3856ad364e35~amd64~~188.8.131.52.mum servicing\packages\Package_for_KB958690_sc_0~31bf3856ad364e35~amd64~~184.108.40.206.cat servicing\packages\Package_for_KB958690_sc~31bf3856ad364e35~amd64~~220.127.116.11.cat servicing\packages\Package_for_KB958690~31bf3856ad364e35~amd64~~18.104.22.168.cat winsxs\manifests\x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.0.6002.18005_none_0b4ada54c46c45b0.manifest winsxs\manifests\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.0.6002.18005_none_676975d87cc9b6e6.manifest
Steps to resolve this issue
Get the files required from other sources. The options available can be found in the “Options for obtaining files” section below.
Copy the files to %Windir%\Temp\CheckSUR directory of the corrupted computer following the subdirectory format as follows:
All files of type *.mum and *.cat should be placed in the %windir%\Temp\CheckSUR\servicing packages directory
All files of type *.manifest should be placed in the %windir%\Temp\CheckSUR\manifests\ directory
Copy Package_for_KB958690_sc_031bf3856ad364e35amd64~~22.214.171.124.mum to %Windir%\Temp\CheckSUR \servicing\packages\
Copy x86_microsoft-windows-servicingstack_31bf3856ad364e35_6.0.6002.18005_none_0b4ada54c46c45b0.manifestto %Windir%\Temp\CheckSUR \winsxs\manifests\
Whenever you copy a .mum file, you must also copy the corresponding .cat file of the same name.
3. Rerun the System Update Readiness tool.
If you get a Payload File Missing message, then the binary required is not available. This means that the issue is not fixed.
Summary: Seconds executed: 100 Found 5 errors Fix 2 errors CSI Payload File Missing Total count: 5 Fix CSI Payload File Missing Total Count: 2 (f) CSI Payload File Missing 0x00000000 admparse.dll x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8 servicing_31bf3856ad364e35_6.0.6000.16386_none_23ddbf36a8a961bc (f) CSI Payload File Missing 0x00000000 bootmgr x86_microsoft-windows-b..re-bootmanager-pcat_31bf3856ad364e35_6.0.6000.16386_none_c0f2f087b6457236 (fix) CSI Payload File Missing 0x00000000 bootmgr x86_microsoft-windows-b..re-bootmanager-pcat_31bf3856ad364e35_6.0.6000.16386_none_c0f2f087b6457236 (f) CSI Payload File Missing 0x00000000 winload.exe x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45 (f) CSI Payload File Missing 0x00000000 setbcdlocale.dll x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45 (f) CSI Payload File Missing 0x00000000 winresume.exe x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45 (fix) CSI Payload File Missing 0x00000000 winresume.exe x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45
Steps to resolve this issue
Find out which payload files are missing by looking at checkSUR.log. Identify any line that have (f) that is not followed by (fix). From the previous example the three payload files that are not fixed are:
(f) CSI Payload File Missing 0x00000000 winload.exe x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45 (f) CSI Payload File Missing 0x00000000 setbcdlocale.dll x86_microsoft-windows-b..environment-windows_31bf3856ad364e35_6.0.6000.16386_none_6701d52e8fdf8d45 (f) CSI Payload File Missing 0x00000000 admparse.dll x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8 servicing_31bf3856ad364e35_6.0.6000.16386_none_23ddbf36a8a961bc
Ensure the binary you get from matches the directory name mentioned on checkSUR.log. For the above example, the directory name is x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8
3. Paste the files onto the proper subdirectory under **c:\\windows\\winsxs**.
Please only paste the files that are needed. Replacing additional files may lead the system into an unserviceable state.
Before placing the files in the appropriate locations, you may need to grant yourself permissions to edit the folder’s contents; below is a quick guide on how to achieve this. 1. At an elevated command prompt: **takeown /f Path\_And\_File\_Name**
For example: takeown /f c:\windows\winsxs\ x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8
2. Next, to grant administrators full access to the file: **icacls Path\_And\_File\_Name /GRANT ADMINISTRATOR:F**
For example: icacls c:\windows\winsxs\x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8 /grant administrators:F
3. To replace the file with a known good copy: **Copy Path\_And\_File\_Name\_Of\_Source\_File Path\_And\_File\_Name\_Of\_Destination**
For example: copy c:\temp\admparse.dll c:\ windows\winsxs\x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6000.16386_none_abfb5fd109dad8b8\admparse.dll
The file used to record operations required during system reboot is bad or corruptedCheckSUR.log does not record this information, however this can be easily identified by checking if one of the registry values below exist:
In Windows 7 and Windows Server 2008 R2, a restart may help resolve the problem by removing the corrupted file. While users may see that some updates fail after a reboot, reinstalling the updates should now succeed.
In Windows Vista and Windows Server 2008, no solution to recover this file exists. For more information followed method three in article 949358in the Microsoft® Knowledge Base (http://go.microsoft.com/fwlink/?LinkId=165004).
Bad Winner Keys
The registry used by the system to keep records of installed components is corrupt. CheckSUR.log does not record this information. However in Windows 7, this can be easily identified by checking if the registry value below exists:
- HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide\@CorruptWinners (REG_SZ)
For Windows Vista SP1 and higher, check this phrase on %windir%\logs\CBS\CBS.log or CBS.persist.log to identify winners key corruption “Install-map entry missing component key in populate”.
CheckSUR does not currently repair this type of corruption. Attempting a System Restore or reinstalling the operating system is recommended.
Options for obtaining files
- Obtaining a file from another computer
Adding too many files to the %windir%\Temp\CheckSUR\servicing\packages directory merely out of convenience (if doing so manually) is not the correct methodology to follow. For example, a power failure occurs during a service pack install and you have 50 .mum and .cat files that need to be replaced. Out of convenience, you manually copy all of the .mum and .cat files from the service pack cab files rather than singularly. CBS will perpetually fail install with a sharing violation error (80070020) when attempting further servicing operations on that package and the System Update Readiness tool will fail to detect any problems.
Ensure that the computer being used to copy files from is using the same version of Windows and system architecture.
To identify a computer’s version, launch cmd.exe and execute winver. To identify a computer’s architecture, launch cmd.exe and execute wmic OS get osarchitecture.
The files are located in subdirectories below **%windir%**. See the following examples: 1. \*.mum files are located in **%windir%\\servicing\\packages\\** 2. \*.manifest files are located in **%windir%\\winsxs\\manifests\\** 3. Package\*.cat files are located in **%windir%\\servicing\\packages\\**
Obtain files from the update package
- Identify which update package you need to download.
You can only use this option if the file requested has a KB number associated with it. For Package_for_KB958690_sc_031bf3856ad364e35amd64~~126.96.36.199.mum, the KB number is KB958690, the architecture version is amd64 (which is the same as x64) and the package version is 188.8.131.52.
2. Download the KB from Microsoft[Help and Support](http://go.microsoft.com/fwlink/?linkid=113139). 3. Expand the package. Assuming you downloaded the msu package to the **%temp%** directory and you want to expand the package to **c:\\targetDir**: **expand %temp%\\Windows6.0-KB958690-x64.msu /f:\* c:\\targetDir** 4. Expand the cab files to the same location: **expand Windows6.0-KB938979-x64.cab /f:\* c:\\targetDir** All the files will be located in the above directory as only payload files are located in specific subdirectories. Occasionally, the required file may be a root package. These packages have no SKU information and follow a set prefix: **Package\_for\_KB958690~31bf3856ad364e35~amd64~~184.108.40.206.mum**. The root package extracted from the cab file will be named **update.mum**. To verify that the newly created update.mum is in fact the correct file, open the file with notepad.exe and ensure the following attributes are present in \<assemble\>\\\<assemblyIdentity\> name=”KB958690” processorArchitecture=”amd64" version="220.127.116.11" If the **update.mum** is correct, rename it to **Package\_for\_KB958690~31bf3856ad364e35~amd64~~18.104.22.168.mum** before copying it to the checkSUR temporary directory.
Renaming update.cat to Package_for_KB95869031bf3856ad364e35amd64~~22.214.171.124.cat is also required before replacing both .mum and .cat files.
Obtaining the files from a Windows DVD
The required files might be available on a Windows DVD.
Launch an elevated command prompt
Execute dism /mount-wim /wimfile:d:\sources\install.wim /index:1 /MountDir:c:\targetDir where d:\ is the directory the Windows DVD is mapped as and C:\targetDir is the empty directory where you want to mount the image.
Locate the files under c:\targetDir\windows\servicing\packages or c:\targetDir\Windows\WinSxS\
After copying the files, unmount the image with the following command:
dism /unmount-wim /MountDir:c:\targetDir /discard