Want to become a Vibe Coder? Join Vibe Coding Training here
x
C# Corner
Tech
News
Videos
Forums
Jobs
Books
Events
More
Interviews
Live
Learn
Training
Career
Members
Blogs
Challenges
Certification
Contribute
Article
Blog
Video
Ebook
Interview Question
Collapse
Feed
Dashboard
Wallet
Learn
Achievements
Network
Refer
Rewards
SharpGPT
Premium
Contribute
Article
Blog
Video
Ebook
Interview Question
Register
Login
Powershell to Deploy all WSP from Folder
WhatsApp
Balaji Vishwanath
Aug 24
2015
2.5
k
0
0
##############################################
Set Variables#####################################################
$InstallDIR =
"F:\Deploy"
##########################################
CODE, No Changes Necessary############################################
Write - Host
"Working, Please wait...."
Add - PSSnapin microsoft.sharepoint.powershell - ErrorAction SilentlyContinue
$Dir =
get
- childitem $InstallDIR - Recurse
$WSPList = $Dir | where {
$_.Name - like
"*.wsp*"
}
Foreach($wsp
in
$WSPList) {
$WSPFullFileName = $wsp.FullName
$WSPFileName = $wsp.Name
clear
Write - Host - ForegroundColor White - BackgroundColor Blue
"Working on $WSPFileName"
try
{
Write - Host - ForegroundColor Green
"Checking Status of Solution"
$output = Get - SPSolution - Identity $WSPFileName - ErrorAction Stop
}
Catch {
$DoesSolutionExists = $_
}
If(($DoesSolutionExists - like
"*Cannot find an SPSolution*"
) - and($output.Name - notlike
"*$WSPFileName*"
)) {
Try {
Write - Host - ForegroundColor Green
"Adding solution to farm"
Add - SPSolution
"$WSPFullFileName"
- Confirm: $
false
- ErrorAction Stop | Out - Null
Write - Host - ForegroundColor Green
"Checking Status of Solution"
$output = Get - SPSolution - Identity $WSPFileName - ErrorAction Stop
$gobal = $
null
if
($output.Deployed - eq $
false
) {
try
{
Write - Host - ForegroundColor Green
"Deploy solution to all Web Apps, will skip if this solution is globally deployed"
Install - SPSolution - Identity
"$WSPFileName"
- GACDeployment - AllWebApplications - Force - Confirm: $
false
- ErrorAction Stop | Out - Null
}
Catch {
$gobal = $_
}
If($gobal - like
"*This solution contains*"
) {
Write - Host - ForegroundColor Green
"Solution requires global deployment, Deploying now"
Install - SPSolution - Identity
"$WSPFileName"
- GACDeployment - Force - Confirm: $
false
- ErrorAction Stop | Out - Null
}
}
Sleep 1
$dpjobs = Get - SPTimerJob | Where {
$_.Name - like
"*$WSPFileName*"
}
If($dpjobs - eq $
null
) {
Write - Host - ForegroundColor Green
"No solution deployment jobs found"
}
Else {
If($dpjobs -
is
[Array]) {
Foreach($job
in
$dpjobs) {
$jobName = $job.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
Else {
$jobName = $dpjobs.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
}
Catch {
Write - Error $_
Write - Host - ForegroundColor Red
"Skipping $WSPFileName, Due to an error"
Read - Host
}
}
Else {
$skip = $
null
$tryagain = $
null
Try {
if
($output.Deployed - eq $
true
) {
Write - Host - ForegroundColor Green
"Retracting Solution"
Uninstall - SPSolution - AllWebApplications - Identity $WSPFileName - Confirm: $
false
- ErrorAction Stop
}
}
Catch {
$tryagain = $_
}
Try {
if
($tryagain - ne $
null
) {
Uninstall - SPSolution - Identity $WSPFileName - Confirm: $
false
- ErrorAction Stop
}
}
Catch {
Write - Host - ForegroundColor Red
"Could not Retract Solution"
}
Sleep 1
$dpjobs = Get - SPTimerJob | Where {
$_.Name - like
"*$WSPFileName*"
}
If($dpjobs - eq $
null
) {
Write - Host - ForegroundColor Green
"No solution deployment jobs found"
}
Else {
If($dpjobs -
is
[Array]) {
Foreach($job
in
$dpjobs) {
$jobName = $job.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
Else {
$jobName = $dpjobs.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
Try {
Write - Host - ForegroundColor Green
"Removing Solution from farm"
Remove - SPSolution - Identity $WSPFileName - Confirm: $
false
- ErrorAction Stop
}
Catch {
$skip = $_
Write - Host - ForegroundColor Red
"Could not Remove Solution"
Read - Host
}
if
($skip - eq $
null
) {
Try {
Write - Host - ForegroundColor Green
"Adding solution to farm"
Add - SPSolution
"$WSPFullFileName"
- Confirm: $
false
- ErrorAction Stop | Out - Null
$gobal = $
null
try
{
Write - Host - ForegroundColor Green
"Deploy solution to all Web Apps, will skip if this solution is globally deployed"
Install - SPSolution - Identity
"$WSPFileName"
- GACDeployment - AllWebApplications - Force - Confirm: $
false
- ErrorAction Stop | Out - Null
}
Catch {
$gobal = $_
}
If($gobal - like
"*This solution contains*"
) {
Write - Host - ForegroundColor Green
"Solution requires global deployment, Deploying now"
Install - SPSolution - Identity
"$WSPFileName"
- GACDeployment - Force - Confirm: $
false
- ErrorAction Stop | Out - Null
}
}
Catch {
Write - Error $_
Write - Host - ForegroundColor Red
"Skipping $WSPFileName, Due to an error"
Read - Host
}
Sleep 1
$dpjobs = Get - SPTimerJob | Where {
$_.Name - like
"*$WSPFileName*"
}
If($dpjobs - eq $
null
) {
Write - Host - ForegroundColor Green
"No solution deployment jobs found"
}
Else {
If($dpjobs -
is
[Array]) {
Foreach($job
in
$dpjobs) {
$jobName = $job.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
Else {
$jobName = $dpjobs.Name
While((Get - SPTimerJob $jobName - Debug: $
false
) - ne $
null
) {
Write - Host - ForegroundColor Yellow - NoNewLine
"."
Start - Sleep - Seconds 5
}
Write - Host
}
}
}
Else {
Write - Host - ForegroundColor Red
"Cannot Install $WSPFileName, Please try manually"
Read - Host
}
}
}
powershell
deploy wsp
deploy multiple wsp
Sharepoint
Up Next
Powershell to Deploy all WSP from Folder