My last post was on CheckSUR and I wanted to follow it up with how you can use the CheckSUR utility to fix corruption errors that CheckSUR might detect, but that cant be fixed with the utility.
Typically, the way that CheckSUR works is that it takes the information included with its payload, loads it locally to your machine into the \Windows\CheckSUR directory and then runs the actual executable on the system. As this executable runs, it detects discrepencies in the package store and corrects the errors that it carries a payload for. But, what do you do when you have a package manifest that shows up in the CheckSUR log but doesnt have the payload with it? If you were to call my team we’ll typically try to walk you through getting the files from another server, taking ownership of the servicing directories and moving the files. But what if this is an isolated server? Worse, what if you only have one PC at home and you’re having issues? Well, there is an easier way.
What you should do is identify the package(s) that CheckSUR was not able to fix, they’re usually listed at the end of the log. From there, you can take that information and go the Microsoft Download site and pull down the KBXXXXXX.MSU that corresponds to the package that you’re seeing failures on. Since you’ve already run CheckSUR to get to this point, you can copy that .MSU to the \Windows\CheckSUR\packages directory (NOTE: This directory does not exist by default and must be created) and then re-run CheckSUR which will take care of the rest. If you’re still having issues afterwards, that just means that something else is going on with the system that is going to require more than CheckSUR can accomplish. Typically, this is true corruption and it may be unrecoverable.
As a side note, CheckSUR doesnt have a command line interface component, so you cant rerun it once its been downloaded and installed, you just need to re-run the downloaded MSU package.
Hope that helps.