The first step to install Cumulative Update 4 is to download the actual CU4 update binaries, which can be acquired by going to https://support.microsoft.com/kb/3026739 and clicking on the Hotfix Download Available link, selecting the appropriate file (there’s only one) and providing your e-mail address.
You will shortly receive an automated message from firstname.lastname@example.org with the download link for a self-extracting executable. Save it to your machine and double-click 482009_ENU_x64_zip.exe to extract CM12-R2CU4-KB3026739-X64-ENU.exe to your Downloads folder, which is the one that we will need to copy to our Configuration Manager Site Server.
As with all updates for Configuration Manager, these should be applied in a top-down fashion. If you’re in a really large organization that has a CAS server, the change needs to be applied there first. If not, we will copy it right to the Primary Site Server. We now need to log onto the Primary itself, and ensure that the console is closed. Before proceeding, ensure a Checkpoint is taken of the VM. This will allow us to revert the CU4 install and remediate any issues for a clean installation. Next, navigate to the location where CM12-R2CU4-KB3026739-X64-ENU.exe was copied and double click to launch the wizard.
Click Next, accept the License Terms and click Next again to bring you to the perquisite page. Address any warnings or errors here (a reboot is often required), and proceed to the next screen when everything is green.
Accept the default selections for the Console Update, Site Database Update, and Deployment Assistance Options screens. On the Update Package for Configuration Manager Servers screen, take note of the Package and Program names, then click Next to view the Package and Program that will also be created for Configuration Manager Consoles, as well as for Configuration Manager Clients on the following screen. Review the summary and click Install.
Monitor the next screen to ensure that all components that require updating complete successfully, then click Next and Finish. Should a failure occur, revert your Checkpoint and remediate the cause of the failure (ie: permissions).
We must now launch the Console and perform some post-installation tasks. The default selections during the installation process created some packages for us, which we will use to update any other Site Servers, Consoles, as well as the Configuration Manager Clients themselves. From the Software Library workspace, expand Packages and click on the Configuration Manager Updates folder. Here you will see the CU4 update packages that were created during the Site Server update. Highlight all 4 CU4 packages and distribute them to your DP(s). Also take the time to Enable Nomad on the packages if 1E Nomad is deployed in your environment.
To deploy these packages, we will create collections that target the components that require upgrading. From the Assets and Compliance workspace, right-click on Device Collections and choose Create Device Collection. Name the new collection “Configuration Manager Consoles without CU4” and limit the collection to All Systems.
On the Membership Rules page, add a Query Rule and call it CM Consoles <CU4 and click Edit Query Statement and then Show Query Language. Replace Select * from SMS_R_System with the following query:
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.Version < “5.00.7958.1501” and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = “System Center 2012 R2 Configuration Manager Console”
The next collection we create will give us a list of all the Configuration Manager Clients that exist in the enterprise without CU4. Follow the same collection creation process, naming the collection Configuration Manager Clients without CU4, using the following Query Rule:
SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System
where SMS_R_System.ClientVersion < “5.00.7958.1501”
Going back to the Configuration Manager Updates folder in the Software Library workspace, right-click the R2 CU4 – console update – <SiteCode> package and choose Deploy, deploying the package to the Configuration Manager Consoles collection. Accept the default selections on each screen of the deployment process to create a Required deployment for the update.
Since we are going to be deploying both the x86 and x64 client updates to the same collection, we need to make a small modification to each of the programs. This will ensure that only the proper client is downloaded to a machine, and the reports stay clean. Select the R2 CU4 – x86 client update – <SiteCode> package and click on the Programs tab at the bottom of the Details Pane. Double-click the program to enter its properties, and select the Requirements tab. Select the Only on specified client platforms radio button, and select all the x86 platforms that exist in your environment. Click OK when complete and repeat the process for the R2 CU4 – x64 client update – <SiteCode> package, using applicable x64 platforms.
With these modifications in place, we can safely deploy both x86 and x64 client updates to the Configuration Manager Clients without CU4 collection.
With our Site Servers, Consoles, and Clients upgraded, there are still some changes that need to be made so Operating System Deployment includes the CU4 update. From the Software Library workspace, expand Operating Systems and select the Boot Images node. Select ALL boot images, and choose Update Distribution Points. This will update the Boot Images on all DPs with the CU4 components.
Finally, each OSD Task Sequence needs to be individually updated to include the CU4 client update. Right-click on the sequence and choose Edit. In the Task Sequence Editor, navigate to and select the Setup Windows and ConfigMgr step. In the Installation Properties section on the right, append the following to the end of the existing statement: