April 10, 2013

SharePoint 2010 PowerShell: List all Web Applications deployed solutions


When you need to know which wsp solution is deployed to which Web Application the following script can be of use. First, get all your web applications and iterate through them. While in the loop print web application name and application pool name. Last, iterate all solutions and print their names - like this:

# Get all installed solutions per web application

$contentWebAppServices = (Get-SPFarm).services |
? {$_.typename -eq "Microsoft SharePoint Foundation Web Application"}

foreach($webApp in $contentWebAppServices.WebApplications)
{
    Write-Host "Web Application  : " $webApp.name
    Write-Host "Application Pool : " $webApp.ApplicationPool.Name
    Get-SPSolution | ForEach-Object {
        if ($_.LastOperationDetails.IndexOf($webApp.url) -gt 0)
        {
            Write-Host "    Solutions:"
            Write-Host "   " $_.DisplayName
        }
    }


The output looks like this: 

Web Application  : SharePoint - 1337
Application Pool : SharePoint - 1337
Web Application  : SharePoint - 80
Application Pool : SharePoint - 80

    Solutions:
    customer.intranet.wsp 


The first web application (SharePoint - 1337) doesn't have deployed solutions, but the second (SharePoint - 80) has one.

No comments:

Post a Comment