Problem: When you upgrade the MOSS 2007 database to SharePoint 2010 you get several error messages as below in the upgrade log.
Category : MissingFeature
Error : True
UpgradeBlocking : False
Message : Database [content1] has reference(s) to a missing feature: Id =
[92800272-d31b-4fcb-b2e2-3e1c18c95f3a].
Remedy : The feature with Id 92800272-d31b-4fcb-b2e2-3e1c18c95f3a is r
eferenced in the database [content1], but is not installed on the
ecurrent farm. The missing feature may cause upgrade to fail
. Please install any solution which contains the feature and
restart upgrade if necessary."
This happens due to missing feature on your SPS 2010 farm. But if you note that the error does not give you the site url of the Feautre missing in the log. So how do you find which site has that missing feature from the farm?
Solution: To find the URL of the site we can use below power shell script. Copy the below code in text document and rename it to missing.ps1 Replace the id in the code (given in red to your missing feature id). Save the file.
Then using the Sharepoint 2010 Management Shell call this file.
$SpSites=Get-SPSite -Limit ALL
$MissingFeatures = "missing_feature id that you get in upgrade log",
" missing_feature id that you get in upgrade log ",
" missing_feature id that you get in upgrade log "
foreach($SPSite in $SPSites) {
$SPSite.Features | Foreach-Object {
if($MissingFeatures -eq $_.DefinitionId) {
Write-Host $_.DefinitionId "`t" $SPSite.Url "`t" $SPSite.ContentDatabase.Name
}
}
}