Below are the commands written in powershell for retracting, removing, uninstalling and deploying the sharepoint solution. Copy the code and paste it in notepad and save with extension as .ps1. Now right click the file and click 'Run with powershell'.
Powershell script for Installing WSP:
# this function loads the powershell snapin in the command prompt.
function LoadSharePointPowerShellEnvironment
{
write-host
write-host "Setting up PowerShell environment for SharePoint..." -foregroundcolor Yellow
write-host
Add-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue
write-host "SharePoint PowerShell Snapin loaded." -foregroundcolor Green
}
function AddSolution($packageName, $packagePath)
{
Write-Host
Write-Host "Adding solution... $packageName..." -foregroundcolor Yellow
$solution = Add-SPSolution $packagePath
}
function RetractSolution($packageName)
{
Write-Host
Write-Host "Retracting solution $packageName..." -foregroundcolor Yellow
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
#Retract the solution
if ($solution.Deployed)
{
if ($solution.ContainsWebApplicationResource)
{
$solution | Uninstall-SPSolution -AllWebApplications
}
else
{
$solution | Uninstall-SPSolution
}
}
}
}
function RemoveSolution($packageName)
{
Write-Host
Write-Host "Removing solution $packageName..." -foregroundcolor Yellow
Get-SPSolution $packageName | Remove-SPSolution
Write-Host
Write-Host "Solution Removed Sucessfully..." -foregroundcolor Green
}
function UpgradeSolution($packageName, $packagePath, $WebAppUrl)
{
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if (!$solution.ContainsWebApplicationResource)
{
Write-Host
Write-Host "Deploying solution $packageName to the Farm..." -foregroundcolor Yellow
$solution | Update-SPSolution -GACDeployment –LiteralPath $packagePath
}
else
{
if ($WebAppUrl -eq $null -or $WebAppUrl.Length -eq 0)
{
Write-Warning "The solution $packageName contains web application resources but no web applications were specified to deploy to."
Read-Host
return
}
else
{
Write-Host
Write-Host "Installing solution $packageName to WebAppUrl" -foregroundcolor Yellow
$solution | Update-SPSolution -GACDeployment -WebApplication $WebAppUrl –LiteralPath $packagePath
}
}
}
function DeploySolution($packageName, $packagePath, $WebAppUrl)
{
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if (!$solution.ContainsWebApplicationResource)
{
Write-Host
Write-Host "Deploying solution $packageName to the Farm..." -foregroundcolor Yellow
$solution | Install-SPSolution -GACDeployment
}
else
{
if ($WebAppUrl -eq $null -or $WebAppUrl.Length -eq 0)
{
Write-Warning "The solution $packageName contains web application resources but no web applications were specified to deploy to."
Read-Host
return
}
else
{
Write-Host
Write-Host "Installing solution $packageName to WebAppUrl" -foregroundcolor Yellow
$solution | Install-SPSolution -GACDeployment -WebApplication $WebAppUrl
}
}
}
# our main method
function ProcessInstallation($packageName, $packagePath, $WebAppUrl)
{
$spAdminServiceName = "SPAdminV4"
#check if solution already exists
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
Write-Host
Write-Host "The solution $packageName already exists."
Write-Host
Write-Host "Choose the following options:-"
Write-Host "[r] Retract and Install solution"
Write-Host "[u] Upgrade solution "
Write-Host "[x] Exit"
$readvalue = Read-Host
if ($readvalue -eq "r")
{
#retract Solution
RetractSolution $packageName
#Remove Solution
RemoveSolution $packageName
#Add the solution
AddSolution $packageName $packagePath
#Deploy the solution
DeploySolution $packageName $packagePath $WebAppUrl
}
elseif ($readvalue -eq "u")
{
#upgrade the solution
UpgradeSolution $packageName $packagePath $WebAppUrl
}
else
{
return
}
}
else
{
#Add the solution
AddSolution $packageName $packagePath
#Deploy the solution
DeploySolution $packageName $packagePath $WebAppUrl
}
Write-Host
Write-Host "starting admin service...(this may take few minutes to complete)" -foregroundcolor Yellow
Stop-Service -Name $spAdminServiceName
Start-SPAdminJob -Verbose
Start-Service -Name $spAdminServiceName
#Block until we're sure the solution is deployed.
do { Start-Sleep 2 } while (!((Get-SPSolution $packageName).Deployed))
Write-Host
Write-Host "Deployed Sucessfully... kindly do an IISRESET after the process. Press Enter to exit" -foregroundcolor Green
Read-Host
}
#
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Deploy the package
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
#calling is done here.....
write-host
LoadSharePointPowerShellEnvironment
$currentDir = Get-Location
Write-host
[string]$packageName = "<SolutionName.wsp>"
[string]$packagePath = $currentDir.Path + "\" + $packageName
if (Test-Path $packagePath)
{
write-host "-----------------------------------------------------------------------------"
write-host "Installing package $packageName" -foregroundcolor Yellow
write-host "-----------------------------------------------------------------------------"
}
else
{
write-host
write-host "No package found. Press any key to exit" - foregroundcolor Red
Read-Host
return
}
Write-Host
write-host "Enter the Web Application Url where you need to deploy the solution"
[string]$WebAppUrl = Read-Host
$objSite = Get-SPSite $WebAppUrl -ErrorAction SilentlyContinue
if($objSite -eq $null)
{
Write-Host
Write-Host "Web Application Url not correct or Web application doesnot extsts. Re-run the exe with correct url." -foregroundcolor Red
Read-Host
}
else
{
ProcessInstallation $packageName $packagePath $WebAppUrl
}
____________________________________________________________________________
Powershell script for Removing WSP:
function LoadSharePointPowerShellEnvironment
{
write-host
write-host "Setting up PowerShell environment for SharePoint..." -foregroundcolor Yellow
write-host
Add-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue
write-host "SharePoint PowerShell Snapin loaded." -foregroundcolor Green
}
function RetractSolution($packageName)
{
$spAdminServiceName = "SPAdminV4"
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
#Retract the solution
if ($solution.Deployed)
{
Write-Host
Write-Host "Retracting solution $packageName..." -foregroundcolor Yellow
if ($solution.ContainsWebApplicationResource)
{
$solution | Uninstall-SPSolution -AllWebApplications -Confirm:$false
}
else
{
$solution | Uninstall-SPSolution -Confirm:$false
}
Write-Host
Write-Host "starting admin service...(this may take few minutes to complete)" -foregroundcolor Yellow
Stop-Service -Name $spAdminServiceName
Start-SPAdminJob -Verbose
Start-Service -Name $spAdminServiceName
#Block until we're sure the solution is no longer deployed.
do { Start-Sleep 2 } while ((Get-SPSolution $packageName).Deployed)
}
#Delete the solution
Write-Host
Write-Host "Removing solution $packageName..."
Get-SPSolution $packageName | Remove-SPSolution -Confirm:$false
Write-Host
Write-Host "Solution Removed Sucessfully. kindly do an IISRESET after the process. Press Enter to exit" -foregroundcolor Green
Read-Host
}
else
{
Write-Host
Write-Host "No solution found to retract with name $packageName" -foregroundcolor Yellow
Write-Host
Write-Host "Press Enter to exit" -foregroundcolor Yellow
Read-Host
}
}
#
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Retract the package
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
LoadSharePointPowerShellEnvironment
Write-host "Retracting Solution..." -foregroundcolor Yellow
[string]$packageName = "<SolutionName.wsp>"
RetractSolution $packageName
Powershell script for Installing WSP:
# this function loads the powershell snapin in the command prompt.
function LoadSharePointPowerShellEnvironment
{
write-host
write-host "Setting up PowerShell environment for SharePoint..." -foregroundcolor Yellow
write-host
Add-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue
write-host "SharePoint PowerShell Snapin loaded." -foregroundcolor Green
}
function AddSolution($packageName, $packagePath)
{
Write-Host
Write-Host "Adding solution... $packageName..." -foregroundcolor Yellow
$solution = Add-SPSolution $packagePath
}
function RetractSolution($packageName)
{
Write-Host
Write-Host "Retracting solution $packageName..." -foregroundcolor Yellow
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
#Retract the solution
if ($solution.Deployed)
{
if ($solution.ContainsWebApplicationResource)
{
$solution | Uninstall-SPSolution -AllWebApplications
}
else
{
$solution | Uninstall-SPSolution
}
}
}
}
function RemoveSolution($packageName)
{
Write-Host
Write-Host "Removing solution $packageName..." -foregroundcolor Yellow
Get-SPSolution $packageName | Remove-SPSolution
Write-Host
Write-Host "Solution Removed Sucessfully..." -foregroundcolor Green
}
function UpgradeSolution($packageName, $packagePath, $WebAppUrl)
{
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if (!$solution.ContainsWebApplicationResource)
{
Write-Host
Write-Host "Deploying solution $packageName to the Farm..." -foregroundcolor Yellow
$solution | Update-SPSolution -GACDeployment –LiteralPath $packagePath
}
else
{
if ($WebAppUrl -eq $null -or $WebAppUrl.Length -eq 0)
{
Write-Warning "The solution $packageName contains web application resources but no web applications were specified to deploy to."
Read-Host
return
}
else
{
Write-Host
Write-Host "Installing solution $packageName to WebAppUrl" -foregroundcolor Yellow
$solution | Update-SPSolution -GACDeployment -WebApplication $WebAppUrl –LiteralPath $packagePath
}
}
}
function DeploySolution($packageName, $packagePath, $WebAppUrl)
{
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if (!$solution.ContainsWebApplicationResource)
{
Write-Host
Write-Host "Deploying solution $packageName to the Farm..." -foregroundcolor Yellow
$solution | Install-SPSolution -GACDeployment
}
else
{
if ($WebAppUrl -eq $null -or $WebAppUrl.Length -eq 0)
{
Write-Warning "The solution $packageName contains web application resources but no web applications were specified to deploy to."
Read-Host
return
}
else
{
Write-Host
Write-Host "Installing solution $packageName to WebAppUrl" -foregroundcolor Yellow
$solution | Install-SPSolution -GACDeployment -WebApplication $WebAppUrl
}
}
}
# our main method
function ProcessInstallation($packageName, $packagePath, $WebAppUrl)
{
$spAdminServiceName = "SPAdminV4"
#check if solution already exists
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
Write-Host
Write-Host "The solution $packageName already exists."
Write-Host
Write-Host "Choose the following options:-"
Write-Host "[r] Retract and Install solution"
Write-Host "[u] Upgrade solution "
Write-Host "[x] Exit"
$readvalue = Read-Host
if ($readvalue -eq "r")
{
#retract Solution
RetractSolution $packageName
#Remove Solution
RemoveSolution $packageName
#Add the solution
AddSolution $packageName $packagePath
#Deploy the solution
DeploySolution $packageName $packagePath $WebAppUrl
}
elseif ($readvalue -eq "u")
{
#upgrade the solution
UpgradeSolution $packageName $packagePath $WebAppUrl
}
else
{
return
}
}
else
{
#Add the solution
AddSolution $packageName $packagePath
#Deploy the solution
DeploySolution $packageName $packagePath $WebAppUrl
}
Write-Host
Write-Host "starting admin service...(this may take few minutes to complete)" -foregroundcolor Yellow
Stop-Service -Name $spAdminServiceName
Start-SPAdminJob -Verbose
Start-Service -Name $spAdminServiceName
#Block until we're sure the solution is deployed.
do { Start-Sleep 2 } while (!((Get-SPSolution $packageName).Deployed))
Write-Host
Write-Host "Deployed Sucessfully... kindly do an IISRESET after the process. Press Enter to exit" -foregroundcolor Green
Read-Host
}
#
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Deploy the package
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
#calling is done here.....
write-host
LoadSharePointPowerShellEnvironment
$currentDir = Get-Location
Write-host
[string]$packageName = "<SolutionName.wsp>"
[string]$packagePath = $currentDir.Path + "\" + $packageName
if (Test-Path $packagePath)
{
write-host "-----------------------------------------------------------------------------"
write-host "Installing package $packageName" -foregroundcolor Yellow
write-host "-----------------------------------------------------------------------------"
}
else
{
write-host
write-host "No package found. Press any key to exit" - foregroundcolor Red
Read-Host
return
}
Write-Host
write-host "Enter the Web Application Url where you need to deploy the solution"
[string]$WebAppUrl = Read-Host
$objSite = Get-SPSite $WebAppUrl -ErrorAction SilentlyContinue
if($objSite -eq $null)
{
Write-Host
Write-Host "Web Application Url not correct or Web application doesnot extsts. Re-run the exe with correct url." -foregroundcolor Red
Read-Host
}
else
{
ProcessInstallation $packageName $packagePath $WebAppUrl
}
____________________________________________________________________________
Powershell script for Removing WSP:
function LoadSharePointPowerShellEnvironment
{
write-host
write-host "Setting up PowerShell environment for SharePoint..." -foregroundcolor Yellow
write-host
Add-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue
write-host "SharePoint PowerShell Snapin loaded." -foregroundcolor Green
}
function RetractSolution($packageName)
{
$spAdminServiceName = "SPAdminV4"
$solution = Get-SPSolution $packageName -ErrorAction SilentlyContinue
if ($solution -ne $null)
{
#Retract the solution
if ($solution.Deployed)
{
Write-Host
Write-Host "Retracting solution $packageName..." -foregroundcolor Yellow
if ($solution.ContainsWebApplicationResource)
{
$solution | Uninstall-SPSolution -AllWebApplications -Confirm:$false
}
else
{
$solution | Uninstall-SPSolution -Confirm:$false
}
Write-Host
Write-Host "starting admin service...(this may take few minutes to complete)" -foregroundcolor Yellow
Stop-Service -Name $spAdminServiceName
Start-SPAdminJob -Verbose
Start-Service -Name $spAdminServiceName
#Block until we're sure the solution is no longer deployed.
do { Start-Sleep 2 } while ((Get-SPSolution $packageName).Deployed)
}
#Delete the solution
Write-Host
Write-Host "Removing solution $packageName..."
Get-SPSolution $packageName | Remove-SPSolution -Confirm:$false
Write-Host
Write-Host "Solution Removed Sucessfully. kindly do an IISRESET after the process. Press Enter to exit" -foregroundcolor Green
Read-Host
}
else
{
Write-Host
Write-Host "No solution found to retract with name $packageName" -foregroundcolor Yellow
Write-Host
Write-Host "Press Enter to exit" -foregroundcolor Yellow
Read-Host
}
}
#
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Retract the package
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
LoadSharePointPowerShellEnvironment
Write-host "Retracting Solution..." -foregroundcolor Yellow
[string]$packageName = "<SolutionName.wsp>"
RetractSolution $packageName
No comments:
Post a Comment