SharePoint 2013 Cumulative Update takes long time to install

Sometimes when you tried to install SharePoint 2013 /2016 Cumulative Update, it took a long time about 4 hours or more to be installed!

I google it and found a good article that explains

  • Why SharePoint 2013 / 2016 Cumulative Update takes a long time to install?
  • What’re the required steps to avoid that behavior?

SharePoint Cumulative Update takes a long time to install

In this article, I just have summarized the mentioned steps to be simple as the following:

  • Copy the below script (at the end of article) to a notepad file and change its extension to ps1.
  • Create a new folder in C:\\ Drive.
  • Copy the CU file with “exe” extension in the newly created folder.

Note: if you have multiple update files like SharePoint & Project Server CU update files, so in this case, you must add only one “exe” file in this folder then run the script,

Once it finished, you should remove the old “exe” file then add the other one to get it patched.

  • Copy the patch file in the same folder as shown below

SharePoint Cumulative Update takes a long time to install

  • Run SharePoint Management Shell as administrator.

Run CA as Adminstrator

  • Locate the created folder location path.
  • Type patchit.ps1 > Click Enter.

longtime

  • Don’t Close the SharePoint Management Shell until the installation is completed.

SharePoint Cumulative Update takes a long time to install

Note: After Clicking OK, The Patch automatically will restart stopped services again.


The complete patch (Provided by Russ Maxwell, MSFT)
###########################
##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"

Applies To 
  • SharePoint 2016.
  • SharePoint 2013.
Reference

Why SharePoint 2013 Cumulative Update takes 5 hours to install?

Advertisements

5 thoughts on “SharePoint 2013 Cumulative Update takes long time to install

  1. Hey, its good to see its successful. But, even for me as well. But I am unable to run the PS config wizard. Its failing at step-5. can you help me…

    Failed to upgrade SharePoint Products.

    An exception of type System.DirectoryServices.DirectoryServicesCOMException was
    thrown. Additional exception information: The service cannot be started, either
    because it is disabled or because it has no enabled devices associated with it.

    Total number of configuration settings run: 3
    Total number of successful configuration settings: 2
    Total number of unsuccessful configuration settings: 1
    Successfully stopped the configuration of SharePoint Products.
    Configuration of SharePoint Products failed. Configuration must be performed be
    fore you use SharePoint Products. For further details, see the diagnostic log l
    ocated at C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\1
    5\LOGS\PSCDiagnostics_3_28_2016_6_42_10_771_632310512.log and the application ev
    ent log.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s