Windows PowerShell Test-SPContentDatabase cmdlet is used to test a content database against a Web application to verify all customizations referenced within the content database are also installed in the web application. There are number of articles that talk about using this cmdlet for SharePoint 2010 upgrade, so let us not get deep into that.
The output generated by running this cmdlet has details about missing customizations (like custom site definitions, features, assemblies). But unfortunately only the GUID values are shown for these missing site definitions and features. This becomes harder for the administrators in identifying the exact site definition and feature during upgrade process. Also its difficult to find the sites that actually use these custom site definitions/features, unless the organization has documented the customization work. Remember, upgrade is a good time to clean up any content like unused features or site definitions that you do not have to upgrade.
Sample output by running Test-SPContentDatabase cmdlet
What does the the site definition id or the feature id actually refer to? Yes, you can copy the ID and then manually search in the respective folder, ..12\TEMPLATE\1033\XML for Site Definitions ID and ..12\TEMPLATE\FEATURES for custom features. How difficult its going to be if there are hundreds of features and site definitions? Also, how to identify which sites are using these ones?
This is what you need to do,
Attach the SP 2007 content database in SP2010 farm and then run Test-SPContentDatabase cmdlet. Generate the output results in a text file and then copy the output files to SP 2007 farm.
Now run SP2010 Upgrade analyzer in SP 2007 environment. Click browse and point to the output file (the one that we got by running Test-SPContentDatabase cmdlet).
Once the output file is chosen, click “Get Site Definitions” to get the list of all missing custom site definitions.
It might take a while to read the output file and load SharePoint objects initially.
It will then show the list of missing site definitions. You can choose any site definition and find out the list of sites that are based out of this custom site definition. To get this site list, click “Get Sites”
To find all missing features in the new farm (SP2010), click “Get Features”
Once the missing feature list is populated, you can chose any feature and click “Get Sites” to get the list of sites that have this feature activated.
If the feature is no more used, you can deactivate and uninstall the feature by choosing the site and clicking “Deactivate and Uninstall Feature” button. If you are unsure, DO NOT execute this option as this will uninstall the feature in the SharePoint farm.
Download the tool here: SP2010 Upgrade Analyzer
Excellent post and great work on the tool :)