With the ease at which ConfigMgr 2012 makes slipstreaming updates into an Image, that is both faster and negates the need for a technician VM it is hard going back to 2007 when updates are required to layer on top of a core WIM.
Since Microsoft did not release SP2 of Windows 7, anyone who has tried to keep a pure gold vanilla build (essentially a Win 7 CD) and layer updates on top would have hit the max 87 updates threshold for the step in the Task Sequence a long time ago so you need to be creative with how you reach your end goal.
One Option I have used when on client site with a GOLD WIM full of apps etc and no build and capture insight and miles out of compliance with updates is the method below:
1) Create a Software Update Package with all the updates you would like to inject into the WIM.
2) Once the updates have been downloaded copy the entire contents of the package down onto a technician PC. The updates will look something like the below:
3) With these on your reference machine, inside each of these folders are .cab files for the updates. I extracted these into 2 folders x86 & x64 and then removed the other folders.
I then proceeded to create a folder structure including the WIM I wanted to mount and inject along with the update directories as shown below (as you can seem the client has created a VERY LARGE core WIM!):
With all this in place you can then use the below Powershell script to add in all of your updates.
*Note – Save the file as a .ps1 with your other items for cleanliness!
**Note – Items highlighted will depend on your environment so ensure you adjust as necessary
$UpdatesPath = “C:\WIM\Patches\x86\*”
$MountPath = “C:\WIM\Mount”
$WimFile = “C:\WIM\Win7office2010 BaseBuild.wim”
DISM /Mount-Wim /WimFile:$WimFile /index:2 /Mountdir:$MountPath
$UpdateArray = Get-Item $UpdatesPath
ForEach ($Updates in $UpdateArray)
DISM /image:$MountPath /Add-Package /Packagepath:$Updates
Start-Sleep –s 10
Write-Host “Updates Applied to WIM”
DISM /Unmount-Wim /Mountdir:$MountPath /commit
Run this from an elevated powershell Window and you should see it cycle through the updates:
The progress can also be monitored from the DISM Log – C:\Windows\Logs\DISM\Dism.log