Test-spcontentdb plus get-spfeature plus Excel for upgrading help

If you’ve run the new PowerShell command test-SPContentDB as part of upgrade testing from SharePoint 2007 to 2010, you’ve probably seen something like this:

Category        : MissingFeature
Error           : True
UpgradeBlocking : False
Message         : Database [_WSS_Content] has reference(s) to a missing fea
                  ture: Id = [43cf51d0-d93e-46d7-9d67-07549c1f89e6].
Remedy          : The feature with Id 43cf51d0-d93e-46d7-9d67-07549c1f89e6 is r
                  eferenced in the database [_WSS_Content], but is not inst
                  alled on the current farm. The missing feature may cause upgr
                  ade to fail. Please install any solution which contains the f
                  eature and restart upgrade if necessary.

While it’s good to know there are 8 features missing in my case today, it would be more helpful to identify them in some way other than a long Id number. While I could go through all the feature.xml files with Powershell, I’ve found get-spfeature works well if you have a box with the correct features installed.

As I only had 8 missing features, I copied each id from test-spcontentdb into an excel spreadsheet and then used the following command:

get-spfeature -id 43cf51d0-d93e-46d7-9d67-07549c1f89e6 | Format-table DisplayName

I ran that on my dev box one by one on the GUIDs to return the full names of the feautres that were missing.

I also ended up using PowerShell, because some of the features weren’t installed on the dev machine but the feature.xml files were in the source directories:

get-childitem -filter *.xml . -recurse | Select-String -pattern "aebe3546-9675-458d-b818-a3a412ad1546"|format-list filename, path

A side note on enumsolutions, XML and Excel

There is no stsadm command for enumfeatures and enumsolutions outputs the solution ids not the feaure ids. However, if you were looking for a good way to list the solution ids and names, one way is to open the xml results of enumsolutions in Excel as follows.

If you send the output from enumsolutions to a file like this:

    stsadm –o enumsolutions > enumsolutionsWWW.xml

And then do a file | Open from Excel, you’ll see a prompt like this:

I’ve found the first option works best and generates a nice spreadsheet like this:

So there you go. If you find yourself looking to find the Name and WSP of a Feature ID. Enumsolutions XML output looks just fine in Excel 2010.

Update 3/24: This post had multiple revisions. At first, I mistakenly thought enumsolutions matched the missing feature ID. Then I had get-spfeature misspelled in a couple places and corrected it this morning.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.