Implement automatic deployment through windows task.
Add-PsSnapin Microsoft.SharePoint.PowerShell $today = Get-Date $targetDir = $today.ToString("yyyyMMdd") $executeDir = "folder path" $executeDir += $targetDir + "\" $webURL = "http://server" $subject = "Automatic Deployment Finished." $tos = "[email protected]" $body = "Solutions deploy successfully.<br/>" $errorMsg = "" $sendingEmail = $true if((Test-Path $executeDir) -eq $true){ $ps1s = Get-ChildItem -Path ($executeDir + "*.ps1") if($ps1s.Count -gt 0){ foreach($ps1 in $ps1s){ Invoke-Expression ($executeDir + $ps1.Name) } $deployingWSPs = GET-SPSolution | Where-Object {$_.JobExists -eq $true} While($deployingWSPs -ne $null -and $deployingWSPs.Count -gt 0){ Start-Sleep -Seconds 600 $deployingWSPs = GET-SPSolution | Where-Object {$_.JobExists -eq $true} } $deployingWSPs = GET-SPSolution | Where-Object {$_.Deployed -eq $true -and ($_.LastOperationEndTime - $today).Days -eq 0 -and $_.LastOperationResult.ToString() -like "*Failed*" } if($deployingWSPs -ne $null -and $deployingWSPs.Count -gt 0){ $errorMsg += "Exception occur during deployment, please check in CA.<br/>" } if($error.Count -gt 0){ $errorMsg += "Exception occure during parse command.<br/>" $errorMsg += $error[$error.Count - 1].Exception.Message } if($sendingEmail -eq $true){ $web = Get-SPWeb $webURL if($errorMsg.Length -gt 0){ $body = $errorMsg } [Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($web, $true, $false, $tos, $subject, $body) $web.Dispose() } } } exit
时间: 2024-11-09 13:07:23