Refer to this Blog post, I decided to create a new one about including Hotfixes in OSD. Specially the new Release of SCCM 2012 R2 brings an annoying issue with extremly slow Downloads while on OSD (http://support.microsoft.com/kb/2910552 ; this Hotfix superseding the KB2905002 which was first used in this blog).
There are two nice ways, how to apply Hotfixes like this to the Client while on OSD, one is documented and thus supported, the other one does just work 🙂
The one that works, but neither documented or supported, is quite simple and already explained in this blogpost (http://www.m4ttmcg.com/2013/05/sccm-2012-client-push-including.html). Just create the folders:
C:\Program Files\Microsoft Configuration Manager\Client\x64\ClientPatch
C:\Program Files\Microsoft Configuration Manager\Client\i386\ClientPatch
and copy the appropriate architecture from your hotfix to one of this Folder. Do not Forget to update your Client Package to be sure using the Files with the Hotfixes.
The other way is to create a package, and copy the files with a package to the Client. First. create a package Location for the hotfix files and create two Folders named AMD64 and X86:
Now navigate to the hotfix Folder and open the Client Folder:
C:\Program Files\Microsoft Configuration Manager\hotfix\KB2910552\Client
Copy the appropriate architecture to the Package Folder, mind to delete the architecture from the file Name:
"\\servershare\Deployment\Packages\Microsoft\SCCM Client\2012 R2\CU0\AMD64\configmgr2012ac-r2-kb2910552.msp"
"\\servershare\Deployment\Packages\Microsoft\SCCM Client\2012 R2\CU0\X86\configmgr2012ac-r2-kb2910552.msp"
As example, the x64 Folder:
Now it is time to create the package, well, it’s that easy with this powershell command:
New-CMPackage -Name "SCCM Client 2012 R2 CU0" -Language "MUI" -Manufacturer "Microsoft" -Path "$PATH_TO_YOUR_PACKAGE" -Version "2012 R2 CU0"
And we don’t need to create a program, because we only use this package within our Task Sequence, but don’t forget Distribute the Package to your Distribution Points.
Make sure, that you set a Variable when formatting your System Drive, on BIOS an UEFI:
Then use this variable also to deploy Windows on the correct Drive:
Now create a simple “Run Command Line” step in your Task Sequence, right before the step “Setup Windows and Configuration Manager” where you copy the file to a Folder on the System Drive. This Folder and the Content will remain after the Installation, so you have to delete them with another step, or leave it in the temp Directory. Here is my step:
cmd.exe /c xcopy %PROCESSOR_ARCHITECTURE%*.* %OSD_System%windows\temp\SCCMHotfix /E /H /C /I /Q /Y
Now, the last step, add the Patch to the SCCM Agent Installation, this is my Installation properties::
SMSCACHEFLAGS=PERCENTDISKSPACE;NTFSONLY SMSCACHESIZE=10 SMSMP=$FQDN_MP FSP=$FQDN_FSP PATCH=C:\windows\temp\SCCMHotfix\configmgr2012ac-r2-kb2910552.msp
If this is not working, you named the subdirectories wrong in your package, or you forgot to remove the architecture from the files.
Hope this helps, Martin
6 thoughts on “SCCM 2012 R2 – Include Client Hotfix or Cumulative Update while on OSD”
[…] not include any hotfixes you had been getting installed on the client. I used the little trick to put a ClientPatch folder under the i386 and x64 client folders to install the MSP immediately after all client installs (yet […]
Word with SCCm 2012 R2?
I’ve tryied the “not official” way, and it seems not to work.
I’ve used the non official way just yesterday, and it worked well.
The only problem I see with this is when you have a difference between the architecture of WinPE and the full OS. Since the “Setup Windows and Configuration Manager” step starts while the system is still in WinPE the %Processor_Architecture% variable will resolve to the WinPE architecture, and if that’s different from the full OS then this will not work.
In our case we have a single task sequence that deploys both 32bit and 64bit Windows and Windows PE is 32bit. When deploying a 32bit Windows all would be good, but when deploying a 64bit Windows the 32bit version of the patch is copied down to the system.
I can work around it, since we use a database to track what OS should be installed on any given machine and I use that value as a variable that I can key off of. But if others do not have an external process to identify the deployed OS independently from WinPE (32bit vs. 64bit) then they’ll have problems.
Best not to use “cmd.exe /c xcopy …” as your command in the Task Sequence; it will fail if using the “Access content directly from a DP when needed…” option in the Task Sequence. Just use “xcopy.exe …” instead. The reason is that cmd.exe does not support running commands with a UNC path as the current folder.
I’m trying this… it’s a VERY old article but the general idea makes sense: