IPU & Offline Dynamic Updates

UPDATE: 8/20 - Adam Gross (@AdamGrossTX) added more info and explain even more!  That guys is awesome, really nice walk through on how to do it with a script to automate!  Check it out HERE

UPDATE: 8/17 - Heard back from MS.  Rest of those Dynamic Updates need to be applied offline to your Build Media, they are NOT included in the monthly CU. (Read full article for context)

Dynamic updates, what are those things?  Well, as Microsoft says “With Dynamic Update, if you start a computer from an existing operating system (for example, Windows 8), and then run Setup from that operating system [IN PLACE UPGRADE], Setup [Windows 10 Upgrade Setup] can check for new Setup files, including drivers and other files.”  You can enable it in your TS on the Upgrade OS step: (yes, you want to do this if you have bandwidth, way more info HERE, Thanks Adam)

As explained in that article, many organizations disables dynamic updates so it doesn’t go out to the internet to get that data, and even prevent it from pulling down from WSUS.  Why block this, bandwidth.  If you have several computers on a small WAN link all trying to go out to Windows Update or even a remote SUP to pull down this content, it could bring down that remote office.

But that information in the dynamic update is very valuable, and can improve success rates for Windows 10 upgrades, so how can we incorporate the dynamic update content directly to the windows upgrade media source package?  Pretty easy actually…  download the KB, extract it, and copy it into your package.

Here’s how I was able to find the Dynamic Update KB (If anyone knows a better way, please let me know).
Look through your Software Updates in CM Console.


So you don’t see Dynamic Updates when you search?  Make sure you enabled that product in “Software Update Point Component Properties”

Ok, so now that you know how to find it, grab the download URL from the properties & Download.
Once downloaded, go ahead and extract it to a temp location.
expand KB123456.cab f:* C:\Temp\KB123456

You’ll now see the extracted Files:

If you take a look at it, you can see that the version is updated to a much higher level than the original.  devinv.dll, look familiar?  It should.. if you don’t update this, if you’re doing upgrades to 1709, it’s probably caused you trouble.  Detailed info from CTGlobal’s Blog

So now, you just copy those files to your Windows Upgrade Media Package into the sources folder and update (overwrite) the original files.  (really recommend you do this in your Pilot Package first, then once tested, apply the changes to your Prod Package)


Congratulations, now you’ve got the Dynamic Update goodness built into your Windows Update Media.

Sorry, I have no automation to do this monthly, it’s a bit of leg work, but worth it. (or just check that box in your TS if you can without melting your network)

If you’re like me, you’re wondering, what about all those other dynamic updates, they aren’t superseded, so what are they?  I went ahead and extracted them all, they contained drivers, manifests and many other random files.  I did not add them into my sources folder, as it felt to me like they belonged in various sub-folders, but when I extracted them, they didn’t extract in a way I’d feel comfortable with just adding into my sources folder.  I’ve got a dialog open with MS about it, and I’m hoping they explain how I can incorporate those other ones as well.  I’ll update this post once I know more... Updated...

UPDATE: 8/17 - Heard back from MS.  Rest of those Dynamic Updates need to be applied offline to your Build Media, they are NOT included in the monthly CU.


3 thoughts on “IPU & Offline Dynamic Updates

  • Pingback: Adding Dynamic Updates to Windows 10 In-Place Upgrade Media During Offline Servicing - A Square Dozen

  • August 20, 2018 at 9:13 am

    Nice work, as always, Gary.
    Our WSUS has 19 updates with title containing Dynamic Update for Windows 10 Version 1709 for x64 dating from 2017-11. Windows Update Catalog shows that only KB4135058 and KB4294595 are superseded. Does this mean all are needed? And is it only the last one that gets extracted and copied and all the rest injected offline using DISM?

    • August 20, 2018 at 3:49 pm

      Anything Superseded, just skip. I setup an ADR for each 1709 and 1803 that grabs just the Dynamic Updates for each, that are for x64, and not superseded. Adam has a nice write up on how to install them, I added the link to the top of my blog.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.