A short post this time with an even short title. As I was working on documenting the content library and its content validation, one of the things I ran into was smsdpmon.exe. As I was not familiar with this executable, I thought it would be a good idea to write about my findings on it. This executable is used to start the content validation process. The validated content can be anything that is distributed to the distribution point and available in the content library. When the content validation process starts, ConfigMgr verifies the hash of the content files on the specific distribution point with the hash in the database and if the hash is unexpected for the content files on the distribution point, it creates a status message. These status messages can be reviewed in the Distribution Status node in the Monitoring workspace.
This executable is used, within ConfigMgr, on the following two different ways:
- Scheduled content validation;
- In the Distribution Points node in the Administration workspace, open the Properties of the distribution point, of which the content should be validated, and navigate to the Content Validation tab. In this tab it is possible to create a schedule for the content validation. Based on the configured schedule, a scheduled task, named Content Validation, is created on the site system. This scheduled task will run smsdpmon.exe on the scheduled dates and times to validate the content on the specific distribution point.
- Manually triggered content validation;
- In the Distribution Points node in the Administration workspace, open the Properties of the distribution point, of which the content should be validated, and navigate to the Content tab. In this tab it is possible to select a package and to click Validate. This will run smsdpmon.exe to validate the content of the selected package on the current distribution point. Also note that this action can also be performed on the package itself.
Another fun thing to note is that smsdpmon.exe can also be executed separately by just double-clicking it. This will also run a full content validation on the distribution point. Even better, smsdpmon.exe also allows one parameter to run a content validation on a specific package on the distribution point. That parameter should be the ID of the package that should be validated. This also explains why it’s not possible, when manually triggering content validation for a package, to select multiple packages to validate. An example command line is smsdpmon.exe PCP00005. This will run the content validation for package PCP00005.
To follow the results of the content validation there is a log file, named smsdpmon.log, that lists all the activities of smsdpmon.exe. Here is an example of how a successful content validation looks like: