Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Discussing DR issues and dependancy's etc., I was pondering features and solutions and it struck me that if one has LOST the pre-packaged solution during a DR, how could one extract it from Config? Turns out to be dead easy...
# tell powershell to load Sharepoint DLL's
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Search")
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Administration.ServerFarm")
#
# connect to the farm
#
$SPfarm = [Microsoft.SharePoint.Administration.SPFarm]::get_Local()
$ver = $SPfarm.BuildVersion
Write-Output "_____________________________________________"
Write-Output "Farm Version: $ver"
Write-Output " "
$SPSolutionCollection = $SPfarm.Solutions
$SolutionCount = $SPSolutionCollection.Count
Write-Output "Solutions in Farm: $SolutionCount"
foreach ($SPsolution in $SPSolutionCollection) {
$SolutionName = $SPsolution.DisplayName
$SolutionGUID = $SPsolution.Id
$SPdeployedServers = $SPsolution.DeployedServers
$SPdeployedWebApps = $SPSolution.DeployedWebApplications
Write-Output "$SolutionGUID : $SolutionName"
if ($SPSolution.Deployed) {
Write-Output " Deployed to:"
foreach ($SPserver in $SPdeployedServers) {
$SrvrName = $SPserver.Name
Write-Output " $SrvrName"
}
}
#
# dump out the .WSP
#
$file = $SPsolution.SolutionFile
$file.SaveAs("c:\Solutions\" + $SolutionName)
}