Often sfc.exe reports errors that it cannot resolve automatically.
Instead of "sfc.exe /scannow" run as Administrator:
- Dism /Online /Cleanup-Image /ScanHealth
- Dism /Online /Cleanup-Image /CheckHealth
If it reports repairable run the following:
- Dism /Online /Cleanup-Image /RestoreHealth
For offline Images (including the recovery environment):
- Dism /Image:C:\offline /Cleanup-Image /RestoreHealth
Note: The needed files are pulled dynamically from Windows Update so you need to have Internet access. If you have any WSUS pollicies applying, disable all of them for the affected client and make sure it updates the policy. I'm not kidding, it fails if it windows updates isn't the update source. I don't know why, but I've seen it happen.