SharePoint 2010 Solution and Feature Deployment
In SharePoint 2010 PowerShell should be used to deploy solutions and enable features. There are a number of cmdlets used in this process.
PowerShell Cmdlets
To add a solution to SharePoint previously used:
- · Stsadm –o addsolution
In PowerShell you should now use:
- · Add-SPSolution -LiteralPath c:\contoso_solution.wsp
- · https://technet.microsoft.com/en-us/library/ff607552.aspx
Once the solution is added to SharePoint you will need to install the solution for the webapplication[s] where you would like to use. Previously the command used was:
- · Stsadm –o Deploysolution
In PowerShell you should now use:
- · Install-SPSolution -Identity contoso_solution.wsp –webapplicaton https://<url_of_webapplication> -GACDeployment
- · https://technet.microsoft.com/en-us/library/ff607534.aspx
Once the Solution has been deployed you then need to enable the features that the solution installed. Previously the command used was:
- · Stsadm –o Activatefeature
In PowerShell you should now use:
- · Enable-SPFeature –identity "MyCustom" -URL https://somesite
- · https://technet.microsoft.com/en-us/library/ff607803.aspx
Resources
These cmdlets should allow you to deploy and enable features. There are many more commands for creating feature packs, removing freatures and solutions. They can be found here: https://technet.microsoft.com/en-us/library/ee906565.aspx
Stsadm command to PowerShell cmdlets mapping information can be found here: https://technet.microsoft.com/en-us/library/ff621084.aspx
I’ve borrowed and made a simple modification to a script from the Technet Script Center that automates this process. As with any script I cannot guarantee that this script will have the results you expect in your environment. Standard disclaimers apply…
The one modification I would make to this script starts at line 112. Below I’ve added a looping structure that should allow you to enable more than one feature.
$featureList = Get-SPFeature | where {$_.SolutionID -eq $solution.ID}
foreach ($feature in $featureList) {
Write-Host "Going to enable Feature {0}" -f $feature.DisplayName
Enable-spfeature -identity $feature.DisplayName -url $url -confirm:$false
Write-Host -ForegroundColor Green 'Feature enabled'
}
This should get you started with using PowerShell to administer your SharePoint farm[s]
/ip