Following on from my post here, where I described adding the Windows 7 Convenience rollup into ConfigMgr as an application. I will now walk through slipstreaming this into your Windows 7 vanilla image that resides within Configuration Manager using DISM or PowerShell so that its present at every deployment moving forward.
I’m assuming that you have Windows 7 with Service Pack 1 already added into Configuration Manager as an operating system. If you don't then I highly suggest you look to update your installed operating system because deploying Windows 7 without service pack one in this day and age is frankly bad practice. With this in mind, there is only one prerequisite we need to consider before we can slip stream the roll up into the image we have (KB3020369). I’m going to mix up DISM.exe and PowerShell commands in this blog so you can see the difference.
With this in mind lets begin. First task is to examine your current image file, see what indexes are available and what packages are already installed. To do this we first use the following commands to identify the indexes stored within the image:
1: dism.exe /Get-ImageInfo /ImageFile:C:\yourimagefile.wim
1: Get-WindowsImage -ImagePath c:\yourimage.wim
The information you get from these commands is basically the same.
For me in this instance I only have one image within the WIM, indexed at 1, so that’s the one I’m concerned about. I’ll now examine it to see if there are any packages installed. To do this I must first mount the image to a mount directory. You can use the following commands.
1: dism.exe /Mount-Image /ImageFile:"C:\yourimage.wim" /Index:1 MountDir:"C:\MOUNT"
1: Mount-WindowsImage -ImagePath "C:\yourimage.wim" -Index 1 -Path "C:\MOUNT"
You see from the PowerShell output above this completed with no ugly red errors and if you look at the specified MOUNT folder, you can see the image is clearly mounted there.
Great! Now lets examine what we’ve got here. To find out what packages are already installed you can throw the following commands:
1: dism.exe /Image:"C:\MOUNT" /Get-Packages /Format:Table
1: Get-WindowsPackage -Path "C:\MOUNT" | Format-Table
Personally I find the PowerShell output better for this:
Not much to go on as this is vanilla so lets inject the Servicing Stack Update (KB3020369). Here are the commands to do this:
1: dism.exe /Image:"C:\MOUNT" /Add-Package /PackagePath:"C:\yourupdate.msu"
1: Add-WindowsPackage -Path "C:\MOUNT" -PackagePath "C:\yourupdate.msu"
(You’ve probably noticed my paths are a bit different to yours, don't worry about the paths specified in the command, you’ll need to change them to match your environment I’m just trying to get you some illustrations as we work through this). Once this is completed we can check packages again to ensure its there.
After adding the prerequisite I then add the Roll Up (KB3155574) – Warning this took ages to install for me. Be patient.
Now lets save that update to the image. To do this we can use the following commands:
1: dism.exe /Commit-Image /MountDir:"C:\MOUNT"
1: Save-WindowsImage - Path "C:\MOUNT"
Now we’ll un-mount the directory cleanly. To do this we’ll use the following commands (ensure you close all explorer windows and any other open apps otherwise you may get errors):
1: dism.exe /Unmount-Image /MountDir:"C:\MOUNT" /Commit
1: Dismount-WindowsImage -Path "D:\SOURCES$\Operating Systems\MOUNT" -Save
Now I update the Distribution Points within ConfigMgr ready for testing.
You can then watch the distmgr.log as it recognised that the install.wim has changed and starts to redistribute the new version to your DP. Obviously give this some time to distribute properly. Then you can test a deployment and look for the packages within it afterwards.
The yellow above indicates that it is re-distributing. (I have a dead DP in my estate hence the red slice of the pie! I must solve that at some point – you will be looking for a full green circle when complete)
Once complete, I’ll deploy a test unit and then throw the following command to query the packages installed on that:
1: dism.exe /online /get-packages /format:table
Here are my results:
Now each Windows 7 image I deploy will have a base of Service pack 1, April 2016 Service Stack Update and the April 2016 Roll up. That should speed things up for me.
I hope this has been useful for you & thanks for reading.