http://blog.softartisans.com/2011/01/24/managing-sharepoint-2010-farm-solutions-with-windows-powershell/
Adding solution to the solution store
Prerequisite: None
stsadm |
stsadm -o addsolution -filename SampleSolution.wsp
|
|
PowerShell |
add-spsolution -literalpath c:\solutions\SampleSolution.wsp
|
|
Because of the way PowerShell handles file path, the cmdlet’s -literalpath switch only accepts a full path to the WSP file. Using a relative path will result in a File Not Found error.
Deploying solution
Prerequisite: The solution has been added to the solution store.
stsadm |
stsadm -o deploysolution -name SampleSolution.wsp -url http://server -allowGacDeployment -force -immediate
stsadm -o execadmsvcjobs
|
|
PowerShell |
install-spsolution -identity SampleSolution.wsp -webapplication http://server -gacdeployment -force
|
|
This solution contains an assembly which must be registered in Web.config (as a SafeControl), so I use the -url switch with stsadm to specify the location of the desired Web application (to which Web.config belongs); alternatively, I could also use the -allcontenturls switch to deploy to all non-administrative web applications. With PowerShell, the -webapplication switch performs the same purpose.
With stsadm it’s also a good idea to run execadmsvcjobs to ensure that the operation is performed immediately. The cmdlet performs this step automatically.
Upgrading solution
Prerequisite: The solution is currently deployed.
stsadm |
stsadm -o upgradesolution -name SampleSolution.wsp -filename SampleSolution.wsp -immediate -allowgacdeployment
stsadm -o execadmsvcjobs
|
|
PowerShell |
update-spsolution -identity SampleSolution.wsp -literalpath c:\solutions\SampleSolution.wsp -gacdeployment
|
|
Again, note that the cmdlet’s -literalpath switch requires a full path to the WSP file.
Retracting solution
Prerequisite: The solution is currently deployed.
stsadm |
stsadm -o retractsolution -name SampleSolution.wsp -immediate
stsadm -o execadmsvcjobs
|
|
PowerShell |
uninstall-spsolution -identity SampleSolution.wsp -webapplication http://server -confirm:$false
|
|
As mentioned in the section Deploying solution, the solution requires modification to Web.config. With PowerShell, you must specify with the -webapplication switch the Web application from which the solution is to be retracted. Failure to do so will result in the following error:
Uninstall-SPSolution : This solution contains resources scoped for a Web application and must be retracted from one or more Web applications.
The cmdlet asks you to confirm the operation before proceeding. For a completely automated operation, you can turn off the confirmation with the -confirm switch.
Removing solution from solution store
Prerequisite: The solution has been retracted.
stsadm |
stsadm -o deletesolution -name SampleSolution.wsp -override
|
|
PowerShell |
remove-spsolution -identity SampleSolution.wsp -confirm:$false
|
|