I’m currently working with a client for whom I’m upgrading their mixed 2007 and 2010 farm to SharePoint 2013.  Unfortunately, a site collection on a SharePoint 2007 farm they no longer have access to was exported instead of backed up.  What makes matters worse, whoever performed the export, expanded the .cmp file.  My client wanted the files from export.

While there are a few sites that give instructions on how to perform imports (like, here, here and here), as anyone who has worked with SharePoint 2007, it can be very finicky – everything, including the stars, must line up.  I also tried “re-compressing” the export file since the .cmp file is nothing more than a .cab file.  However, I had additional issues with the resulting .cab file since we were dealing with a 7GB file on a Windows 2003 machine (they don’t play nicely together).  I also tried using a tool from Mike Smith to convert the files from the export file.  But, being that Mike hadn’t worked on the solution since many years ago, of course, the application was giving me cryptic exception errors.

After all failed attempts, I was finally required to write a PowerShell script that reads the Manifest.xml and converts all of the .dat files to their original filenames in the original SharePoint 2007 file structure.  I’ve posted the PowerShell script on GitHub.

Have fun!