Finding Bad Files That Upset ConfigMgr – Hash could not be matched for the downloaded content
I was assisting a customer with deploying Adobe CS3 via SCCM 2007 and was hitting a brick wall with the package deployment constantly failing on all machines with:
12 Hash could not be matched for the downloaded content. Original ContentHash = 7C2BFDF0162EF4E5AE6D67EDED6F9A404B74D64B, Downloaded ContentHash = 5C338435615D6A6EAAFED329A97486D2D358CEA8Failed to resolve the source for SMS PKGID=xxxxxxxx, hr=0x80091007
I spent ages checking for hidden files, checking the WebDAV configuration on the BITS enabled distribution points for any requestFiltering that may be causing the issue, deleting the package from all DPs, deleting the package from within SCCM, re-doing the sources, removing binary differential compression etc. You name it, I'd tried it.
Finally I found the root cause of the issue: A “foreign” character in one of the filenames. For some reason this was causing the hash mismatch (0x80091007) issue.
I wrote the following VBScript very quickly to help me in the future to find any hidden files or any files with “foreign” characters in their name. It's not the best implementation but it works (for me anyway!). Example usage:
1 cscript FindBadFiles.vbs C:\Sources
Hopefully this'll save someone else hours of troubleshooting.