There are some software packages that introduce a lot of interesting complexities that SCCM 2007 gets confused by. One of the applications that I was trying to test and deploy was giving me a particularly interesting problem: all of the clients downloaded the package, but when they checked the content, it did not match the source.
The error, which had an ID of 10057, was found by going to System Status -> Advertisement Status -> <advertisement name> -> Show Messages on the actions pane:
The program for advertisement “SIT00001 has failed because download of the content “SIT00029” – “Per-system unattended” has failed. The download failed because the content downloaded to the client does not match the content specified in the content source.
Possible causes: The content on the distribution point has been manually modified, or a local administrator on the computer has modified the content in the computer’s hash. Solution: Refresh the content on the distribution point and retry the download.
The solution seemed obvious: update the distribution points. But multiple tries, including recreating the package and advertisement completely, did not fix the problem. Finally, I stumbled upon a forum post that helped me narrow the problem down to one of two scenarios:
Binary Differential Replication – If this is enabled in the package configuration, some packages seem to fail. I’m assuming that they can’t handle this kind of replication and several of the files become corrupt, creating a hash mismatch. This can be turned off by opening up the package properties, going to the Data Source tab, and unchecking Enable binary differential replication. This wasn’t my problem because I hadn’t enabled binary differential replication.
Hidden Files – Apparently, if the package source contains hidden files, SCCM may not calculate the correct hash for the package and clients could encounter an error. I found a quick way to check this using the command line:
- Open up a command window in the root director that contains your package source files.
- Type Dir /S /A:H and hit enter. Depending on the package, you may be presented with several directories with multiple hidden files.
- Trying to remove the hidden attribute on all the files with the GUI would be tedious, so just use this command instead: attrib -H /S
- Update the distribution points.
The package finally verified properly and the advertisement completed.