Applying CU’s to SharePoint 2013 Servers with PowerShell

Here’s a very cool script that is a huge time saver for applying the cumulative updates to SharePoint.

To use it, just copy the code below into a text file and save that file as a .ps1 file. (e.g. C:\UpdateFolder\CUInstall.ps1)

05/07/2017 – When I originally wrote this post I had mentioned That I had no idea who wrote this code; but, I can tell you that I didn’t and that it works!  And, that is all still true except for the part about who wrote it. It was written by Russ Maxwell in 2013 –

Thanks Russ!

After you have the .ps1 file, save that .ps1 and the files you downloaded for the cu, usually a couple of uber files and an executable, into the same directory on your server. (e.g. c:\updateFolder)

If you don’t have the CU downloaded yet, here’s a link to TK’s blog – I recommend the November 2016 CU for SharePoint 2013; but, you’ll always want to check for any regressions and apply to a non-prod environment first.

Next, open PowerShell and navigate to the directory where you saved the .ps1 file, the CU exe file, and the other files (e.g. cd c:\updateFolder).

Make sure the Execution policy in PowerShell, is set to unrestricted (e.g. c:\updateFolder\Set-ExecutionPolicy unrestricted)

Call the .ps1 file (c:>\updateFolder\   .\CUInstall.ps1)

If prompted to allow, go ahead and allow all by pressing A, or Y

(If you have more servers in the farm, you should go to them and run the script, same options as this server)

When you run the PowerShell it will give you the option to stop search and other services, definitely pick this option.

Do not close the window, let it run until the script is completed.

VERY IMPORTANT:  At the end of the script if the patch requires a restart, do NOT restart, until the script has had an opportunity to restart the services and finish.

When prompted by the installer to restart, like so many other things in life, “Just Say No”

When the script finishes you’ll see Script Complete.

After the script completes go ahead and restart the server after all the servers in the farm have got to this point.

Run this script in parallel on other servers in the farm, obeying the same restart rules.

After all servers have received the CU, and restarted for good measure, and not before, go ahead and run psconfig either from the wizard or from Powershell, sequentially.

One word of advice, I gleaned from reading posts by Stefan Gobner, if using the command line, err powershell, err psconfig.exe not psconfiggui.exe, make sure you use the above, as just running Psconfig.exe -cmd upgrade -inplace b2b -wait -force will not update the files in the _app_bin directory.  Something to keep in mind.  So, if you use the gui, then you don’t have to worry about those files getting updated because it triggers the Install-SPApplicationContent cmdlet.  Hope that helps.