I had a similar problem and was able to fix it but it takes a lot of work and you need access to a working Win7 machine that has the uncorrupted file. I was lucky - fixing a desktop, had another with the correct file.
- Do this for each corrupted file. For example, in the attached sfcdetails.txt, the file WMPNSSUI.dll is bad.
- Look in the error details to find which directory in Windows\winsxs the file exists. E.G for the above,
Microsoft-Windows-WMPNetworkSharingService-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.Microsoft-Windows-WMPNetworkSharingService-Update
- find the corresponding directory. Easy way to do it, search for "WMPNSSUI.dll" in Windows/winsxs (need the quotes)
- find the same directory on a working Win7 machine.
- compare the files in the corresponding directories, they should not match (I use BeyondCompare but it's pretty advanced)
- use the instructions here to copy the good file copy over the bad one:
http://support.microsoft.com/KB/929833
I had 4 bad files and fixed them all and did not have to reinstall Win7 as I had feared...
Technical detail: winsxs directory holds multiple copies of typically dll files, same name, each slightly different as they are revised, patched, etc. For a particular installed program, a manifest file tells windows which version of a named file to use, and they are found in winsxs. Quite a mess, and historical reason is that in the old days main memory was small, so shared library type files (.dll) were used to reduce memory use. However as these shared files changed with patches and revisions some programs that expected them to work a very specific way would not work with newer versions. So for compatibility Windows supports multiple versions of shared libraries with the same name... ugh.