Patching can be tedious and time consuming. Why not automate that? Who wants to be awake all night clicking “Next” and watching SP config wizard? So I coded a single PowerShell script to manage the full end-to-end patching process.
The script will …
- Enable PowerShell client remoting. Connects to farm peer machines.
- Autodetect current user password from IIS pools
- Download Microsoft Cumulative Update (CU) media (EXE +CAB) and copy to all servers. Optionally, you can download to the \media\ sub folder manually.
- Stop Distributed Cache (DC)
- Stop SharePoint services
- Run EXE binary in paralle
- Wait for EXE to complete and reboot
- Start SharePoint services
- Run SharePoint Config Wizard serially
- Remove Microsoft Cumulative Update (CU) media from peer servers
- Ensure IIS started
- Launch Central Admin with IE
- Reboot current PC
Duration from start to end is incredibly fast. I tested a 4 server SharePoint 2013 farm and ran the entire process in just 45 minutes. Stopping services and dismounting content databases speeds up patching significantly. Automating serial (one-at-time) Configuration Wizard ensures minimal “think time” between steps. Removing manual human process gives higher consistency while mitigating risk of error.
The script uses Get-SPServer to auto detect farm members. That enables CU media copy sideways to peers and the stop/start of SharePoint services. Get-SPContentDatabase is exported to a local CSV file to “snapshot” before patching and later Mount-SPContentDatabase step to present databases again. The big goal isn’t zero downtime, but rather minimal downtime.
The entire farm patching process can be managed from one PowerShell window. Enjoy!
Please leave a comment if you found this helpful.
- Extract to “C:\SPPatchify” on any server in the farm
- RDP with farm account and run “C:\SPPatchify\SPPatchify.ps1”