technical blog Marathon Extracting MSI files for updates in SCCM.jpg

Extracting .MSI files for Surface updates in SCCM

The traditional approach to driver management is to only do it when absolutely necessary.  You might have the odd occasion when a bug fix, or a feature requires a firmware or driver refresh, but if it’s working, you probably don’t need to fix it…unless it’s a Microsoft Surface device!


It’s fair to say that Surface devices have had a chequered update history. In the last six months we’ve had updates that give better battery performance and those that dis-connect services.  The process for importing these updates into SCCM can take time and so it’s vital to have a smooth process in place, (especially as it looks like we’ll have to do more and more of these in the future).

For those new to installing updates in SCCM, as of System Center Configuration Manager version 1710, you can synchronise and deploy Microsoft Surface firmware and driver updates directly through the Configuration Manager client. The process resembles deploying regular updates. However, some additional configurations are required to get the Surface driver updates into your catalogue. 

Microsoft have talked extensively about wanting to change the mind-set around customers holding updates for longer periods, in order to test before releasing into production.  Each Windows 10 update will now only be supported for just 18th months, so it’s important that you’re prepared to keep up with a twice-yearly schedule and choose the right tools to help you deploy quickly and safely.

If you are new to updating Surface devices through SCCM and looking for more of a tutorial on how to complete the task, let me know?  I’d be happy to give you some pointers.


For those needing to apply drivers during the build process, issues can arise during as you start to bring these files into MEMCM, for operating system deployment. 

I’ve recently downloaded a number of Microsoft Surface Drivers for varying models.  These drivers are destined for SCCM Driver packages and in order for these to be imported into SCCM, the downloaded MSI files first need to be extracted.  The recommended command line for extracting these packages is as follows:

Msiexec.exe /a “<Surface Package>.msi” /qn TARGETPath=”<Target Path>”

The problem is that this command line can be temperamental, and, in some cases, it fails to extract the files properly.  When you are working to a tight timescale, this is often the last thing that you need. To resolve this, I have found a nice MSI Live Logging and File Extraction Utility tool called MSITOOLS.EXE, which is hosted on InstallSite 

This tool is effectively a front end for launching a .msi or .exe package, with a real-time logfile viewer and the ability to easily set command line options.  In my view, it is more importantly, a great tool for extracting the files embedded within the MSI's CAB files.  With a tree view layout, showing the files according to their folder layouts, it will consistently extract these MSI’s, without any issues.

Get in touch if you want more details on extracting files for Surface updates, or if you would like to receive notifications on future issues and updates.



Share this post

About Us

Marathon Professional Services is your trusted IT solutions partner. We offer a range of services including Desktop Infrastructure Solutions and Virtualisation, and we act on a white-labelled basis as an extension of your business.