Uninstall All SharePoint 2010 Solutions via PowerShell
I frequently need to tear down and rebuild the SharePoint 2010 environment I use for demonstrations.
One action I need to perform pretty much weekly is removing all the installed SharePoint solutions I built to demo development topics over the previous week.
Here’s my PowerShell script. It saves me a great deal of time, I hope it save you some too!
The Script
function Uninstall-AllSPSolutions { param ( [switch] $Local, [switch] $Confirm ) Start-SPAssignment -Global; foreach($solution in (Get-SPSolution | Where-Object { $_.Deployed })) { write-host "Uninstalling Solution " $solution.Name; if($solution.DeployedWebApplications.Count -gt 0) { Uninstall-SPSolution $solution –AllWebApplications -Local:$Local -Confirm:$Confirm; } else { Uninstall-SPSolution $solution -Local:$Local -Confirm:$Confirm; } do { Start-Sleep 5; $solution = Get-SPSolution $solution; } while($solution.JobExists -and $solution.Deployed) } Stop-SPAssignment -Global; } function Remove-AllSPSolutions { param ( [switch] $Confirm ) Get-SPSolution | Where-Object { !$_.Deployed } | Remove-SPSolution -Confirm:$Confirm }
Usage
If you’re saving the script to a file, say “Remove-AllSPSolutions.ps1” then remember to load the script before invoking it with:
. .Remove-AllSPSolutions.ps1
You can uninstall all deployed solutions with the following command:
Uninstall-AllSPSolutions -Confirm
And then remove them with:
Remove-AllSPSolutions -Confirm
You can leave a response, or trackback from your own site.

Thanks for this information….
Brilliant! This saved me a lot of time when I was trying to work with my installed/deployed solutions.