Compressing SCCM FMSCUG Driver Installer Packages to Save Space and Bandwidth
You may notice in many cases that the method of driver installation utilizing the FMSCUG Driver Installer results in very large packages, in some cases up to 4GB depending on the model, while other times the package may be more around the 400MB mark. For smaller packages, this is fine, however if you are like most SCCM administrators, you don't want to take up the space and/or kill WAN links distributing large packages for each model. There is a solution - and it's called 7-Zip!
This article assumes you are familiar with the FMSCUG Driver Installer method of installing drivers during a task sequence. That is to say, it only applies to situations where you are installing drivers in that way.
Using 7-Zip, we can create a self-extracting compressed executable, allowing us to add our source directory into an archive with a selectable compression level and tell the resulting EXE to automatically call the driver installer executable when it has extracted it's contents into a temporary location.
- To achieve this, you will need to have 7-zip installed. Start with your source directory, and select all of the extracted driver folders, as well as the FMSCUG Driver Installer exe and the info.diconfig file (if you choose to include one).
- Right click on the selected group of items, and from the 7-Zip context menu, select "Add to archive..."
- Give the compressed archive a name, select the compression level, and click "OK".
Note: It is debateable which compression type is best here. It is possible that compressing the driver files too much may compromise their integrity and cause installation issues, however I have had really great luck with using "Ultra" level compression and haven't personally ran into this issue myself.
- Wait for 7-Zip to compress your files into the 7z archive.
- When finished, you should now see the completed 7-Zip archive - this file size is close to the size you can expect your final package to be - much better than the raw source directory size!
- You will need to place the 7zS.sfx file from the "7-Zip Extra" package (from the 7-Zip download page - you want to grab it from the version 9.20 branch and not the current branch), and also a config.txt file (of your creation - sample pictured and also uploaded below) in the same directory as your 7z archive.
- Sample config.txt file. This is how you configure the self-extracting EXE we will be creating shortly.
- Create the self-extracting 7-Zip EXE by running the following command in a command prompt (without quotes): copy /b 7zS.sfx + config.txt + "EliteBook Revolve 810 G3" "EBRevolve810G3Win7x64.exe"
- This won't take long, and when finished, you will see an EXE with the name you provided in the command above, which will be only slightly larger than the original 7z archive. You now have a reasonably sized standalone driver installer exe for this computer model!
- Place this in your package source directory, alone with the ServiceUI.exe file from the Microsoft Deployment Toolkit.
- Create a normal package, using the directory above as your source directory (selecting the "no program" option). Once you have done that, you need to reference this slightly differently in your command line step than an uncompressed driver installer package. The command line will now be ServiceUI.exe -process:tsprogressui.exe EBRevolve810G3Win7x64.exe as we are calling the exe directly, which will handle running the fmscug driver installer exe upon extraction.