[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local foreach ($solution in $farm.Solutions) { $solution.Name $location = Join-Path (Get-ScriptDirectory) "Solutions" $location = Join-Path $location $solution.Name $solution.SolutionFile.SaveAs($location); }