PowerShell
SharePoint
SharePoint 2013
SharePoint On-Premises
How-To Update Service Pack or Patching SharePoint 2013 less than 40 Minutes
August 14, 2018Environment:
SharePoint 2013 Server On-Premises
How-To:
Make sure look like this below image for installation:
Then, open SharePoint 2013 Management Shell as Administrator and set location, example:
You can use cmdlets:
Set-Location -Path “C:\DATA\SharePoint_Update\Service Pack\SP1”
Or
CD C:\DATA\SharePoint_Update\Service Pack\SP1
In this location, type cmdlets .\Script-Patch.ps1 then Enter > Choose option 1 > wait for it until user agreement show up and process to install or updating
Yeah, install or updating already done. Choose “No” for starting back your services and see result duration.
After that, you can restart by manually.
Hopefully this help and enjoy for copy the script below 😊
Script:
########################### ##Ensure Patch is Present## ########################### $patchfile = Get-ChildItem | where{$_.Extension -eq ".exe"} if($patchfile -eq $null) { Write-Host "Unable to retrieve the file. Exiting Script" -ForegroundColor Red Return } ######################## ##Stop Search Services## ######################## ##Checking Search services## $srchctr = 1 $srch4srvctr = 1 $srch5srvctr = 1 $srv4 = get-service "OSearch15" $srv5 = get-service "SPSearchHostController" If(($srv4.status -eq "Running") -or ($srv5.status-eq "Running")) { Write-Host "Choose 1 to Pause Search Service Application" -ForegroundColor Cyan Write-Host "Choose 2 to leave Search Service Application running" -ForegroundColor Cyan $searchappresult = Read-Host "Press 1 or 2 and hit enter" Write-Host if($searchappresult -eq 1) { $srchctr = 2 Write-Host "Pausing the Search Service Application" -foregroundcolor yellow Write-Host "This could take a few minutes" -ForegroundColor Yellow $ssa = get-spenterprisesearchserviceapplication $ssa.pause() } elseif($searchappresult -eq 2) { Write-Host "Continuing without pausing the Search Service Application" } else { Write-Host "Run the script again and choose option 1 or 2" -ForegroundColor Red Write-Host "Exiting Script" -ForegroundColor Red Return } } Write-Host "Stopping Search Services if they are running" -foregroundcolor yellow if($srv4.status -eq "Running") { $srch4srvctr = 2 set-service -Name "OSearch15" -startuptype Disabled $srv4.stop() } if($srv5.status -eq "Running") { $srch5srvctr = 2 Set-service "SPSearchHostController" -startuptype Disabled $srv5.stop() } do { $srv6 = get-service "SPSearchHostController" if($srv6.status -eq "Stopped") { $yes = 1 } Start-Sleep -seconds 10 } until ($yes -eq 1) Write-Host "Search Services are stopped" -foregroundcolor Green Write-Host ####################### ##Stop Other Services## ####################### Set-Service -Name "IISADMIN" -startuptype Disabled Set-Service -Name "SPTimerV4" -startuptype Disabled Write-Host "Gracefully stopping IIS W3WP Processes" -foregroundcolor yellow Write-Host iisreset -stop -noforce Write-Host "Stopping Services" -foregroundcolor yellow Write-Host $srv2 = get-service "SPTimerV4" if($srv2.status -eq "Running") {$srv2.stop()} Write-Host "Services are Stopped" -ForegroundColor Green Write-Host Write-Host ################## ##Start Patching## ################## Write-Host "Patching now keep this PowerShell window open" -ForegroundColor Magenta Write-Host $starttime = Get-Date $filename = $patchfile.basename Start-Process $filename Start-Sleep -seconds 20 $proc = get-process $filename $proc.WaitForExit() $finishtime = get-date Write-Host Write-Host "Patch installation complete" -foregroundcolor green Write-Host ################## ##Start Services## ################## Write-Host "Starting Services Backup" -foregroundcolor yellow Set-Service -Name "SPTimerV4" -startuptype Automatic Set-Service -Name "IISADMIN" -startuptype Automatic ##Grabbing local server and starting services## $servername = hostname $server = get-spserver $servername $srv2 = get-service "SPTimerV4" $srv2.start() $srv3 = get-service "IISADMIN" $srv3.start() $srv4 = get-service "OSearch15" $srv5 = get-service "SPSearchHostController" ###Ensuring Search Services were stopped by script before Starting" if($srch4srvctr -eq 2) { set-service -Name "OSearch15" -startuptype Automatic $srv4.start() } if($srch5srvctr -eq 2) { Set-service "SPSearchHostController" -startuptype Automatic $srv5.start() } ###Resuming Search Service Application if paused### if($srchctr -eq 2) { Write-Host "Resuming the Search Service Application" -foregroundcolor yellow $ssa = get-spenterprisesearchserviceapplication $ssa.resume() } Write-Host "Services are Started" -foregroundcolor green Write-Host Write-Host Write-Host "Script Duration" -foregroundcolor yellow Write-Host "Started: " $starttime -foregroundcolor yellow Write-Host "Finished: " $finishtime -foregroundcolor yellow Write-Host "Script Complete" ##Thanks to:Russ Maxwell (russmax@microsoft.com)## ########################### #Updated Script 4/4/13 1:41 AM (CST). Thanks to Scott Manning for script validation efforts with appfabric. #Updated Script 4/2/13 2:10 PM (CST). Thanks to Jon Waite for script validation efforts. #Updated Script 8/31/13 10:00 AM (CST). Corrected an issue with starting script and removed appfabric shutdown/start up failed logic. Thx for the feedback! #Updated Script 9/7/15 11:05 AM (CST). Removed /passive switch to expose errors during patching ###########################
0 comments