Reporting on features across a SharePoint Farm
Before retracting a SharePoint solution, it is best to deactivate the associated feature in each Site Collection. Here’s a script that reports on which Site Collections have a feature enabled, and optionally deactivate the feature. This is easily adapted to Web or Web Application features as well. Best is to first get the SPFeature GUID, using get-spFeature CmdLet. Just flip the $Deactivate switch to $true to actually deactivate. Note any SPFeature not found will generate an error that a try/catch clause will not catch. The quick solution is to capture my output into $OutLine, and clear the console and output the summary at the end of the run.
$OutLine=$null; $Deactivate = $false; $a=Get-SPFeature 359d84ef-ae24-4ba6-9dcf-1bbffe1fb788 #my site collection feature, substitute for yours Get-SPWebApplication | Get-SPSite -Limit all | % { $b = Get-SPFeature -Identity 359d84ef-ae24-4ba6-9dcf-1bbffe1fb788 -site $_.url if ($b -ne $null) { $OutLine = $OutLine + "Found active in $($_.url)`n" $b=$null; if ($Deactivate) { Disable-SPFeature 359d84ef-ae24-4ba6-9dcf-1bbffe1fb788 –url $_.url } } } cls if ($Deactivate) { Write-Host "Deactivated all; Here are Site Collections where it was active:" } else { Write-Host "Here are Site Collections where it is active:" } write-Host $OutLine |
Want to talk?
Drop us a line. We are here to answer your questions 24*7.