Does the order of integrating Windows updates into install.wim matter?


  1. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
       #1

    Does the order of integrating Windows updates into install.wim matter?


    Good afternoon,

    I have a couple of questions please.

    However, I will only ask this one first because depending on the answer the other questions might be irrelevant.

    When integrating Windows updates into an offline install.wim does it matter in which order the Windows updates are integrated?

    I only ask this because there is conflicting opinions on the Internet about whether they should be or shouldn't be!

    Obviously the order of the updates would matter on a live system!

    Thanks in advance.
    Last edited by Paul Black; 19 Mar 2018 at 12:53.
      My Computer


  2. Posts : 16,132
    7 X64
       #2

    1. Some updates require exclusive access. To update just one image:

    The easiest way is to use dism++. Use it to mount the image, then get it to scan for updates.It then downloads the update database and scans the mounted image. It will then list the updates suitable for the image.If you then click Install, it will download the updates using the differ engine ( so only the parts that are needed). As it goes through the list, it will warn of updates containing telemetry,or other potential problems, and those which require exclusive access. If you click NO when the message box pops up, it skips those and installs the rest.

    When you have completed the update process, Save the image. Then Unmount the image.


    2. If you want to update ALL images:

    update image1 as above using dism++, then Save it 4 times. Unmount the image. CLOSE dism++

    Using cmd prompt ( not dism++)
    Mount image 2, change the edition, Save and unmount. Next mount image 3, change the edition, Save and Unmount. Finally, mount image 4, change the edition, Save and Unmount.
      My Computers


  3. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
    Thread Starter
       #3

    Deleted because for some reason it posted it twice!!!
    Please see below.
      My Computer


  4. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
    Thread Starter
       #4

    Thanks for the reply SIW2, it is appreciated.

    I have DISM++ on my list of things to learn about in the very near future.

    Here is a bit of background about me.
    I had an accident at work well over a year ago and I am awaiting one, maybe two, more operations. I am pretty much housebound. Anyway, I thought I would use my time productively and learn new things. I decided I would learn about DISM, and what better way to learn about it than putting it to good use on something that I could use. With this in mind, I decided that I would try and create an updated install.wim image file with ALL the Windows updates included, ready for a clean install. I think I have done pretty well so far. In fact I have managed to also incorporate learning about Batch files.

    Anyway, back to my initial question in post #1.

    Depending on the answer to whether or not the Windows updates need to be integrated in a particular order or not I was going to post an additional question. I have decided to post this anyway now.

    The main question (it is Batch script related) that I need answered to completely finish my Batch file to integrate ALL the Windows updates into a new install.wim file is as below highlighted in Red.

    I have 21 updates (.msu) in the folder C:\Win7ISOUpdates.

    The Dism command (I am using a Batch file to do this) to loop through the updates in the folder one by one and integrate them is:
    Dism /Image:"C:\Win7ISO\OFFLine" /Add-Package /PackagePath:"C:\Win7ISOUpdates"

    As you will see from the attachement it gives me an error.

    The first attempt I put ALL 21 updates (mainly Security-Only updates) in the folder C:\Win7ISOUpdates and run the Dism command and got an error as per the attachement.

    The second attempt I only put 7 updates in the folder C:\Win7ISOUpdates and run the Dism command and got the same error on the same 2 updates as per the attachement below.

    I have manually installed each of the updates seperately (the 7 updates above that is) and they worked fine so I know that there isn't a problem with the updates themselves.

    The errors are on the same 2 updates (because they appear to have only reached 33.3% and 32.7% respectfully):

    KB3125574 - Convenience Rollup Package.
    KB3172605 - Functional Update Rollup (THIS ONE IS IMPORTANT) - July 2016.

    Now on the first attempt when I used ALL 21 updates and got the error message I ran those 2 updates again and they WORKED.

    I ran Dism /Image:C:\Win7ISO\OFFLine /Get-Packages > C:\Win7Lists\Packages.txt (to output the Packages to a .txt log file) and when I looked at the log file it had put them in ascending order, although the 2 updates that errored were run last and out of sequence. This leads me to believe that it DOESN'T make a difference what order they are integrated in!

    The alternative of course is that they are flagged in some way with respect to the order they are integrated in and then get sorted within the Dism /Image:C:\Win7ISO\OFFLine /Get-Packages > C:\Win7Lists\Packages.txt log file!!!

    I think the problem that causes the errors probably has something to do with the fact that after each update is integrated that the program needs to wait for a few seconds (15 maybe) to catch up before continuing onto the next update. Something like timeout or wait. I have Googled for a solution but can't seem to find anything that works.

    I have however tried choice /d y /t 15 > nul but that is not recognised.
    I have also tried the following which are also not recignised:
    timeout /t 15
    timeout /t 15 /nobreak
    timeout /t 15 /nobreak > NUL

    Here is the snippet of the code that is relevant:
    Code:
    echo off
    echo.
    echo [06] Integrating ALL the updates from the C:\Win7ISOUpdates folder...
    Dism /Image:"C:\Win7ISO\OFFLine" /Add-Package /PackagePath:"C:\Win7ISOUpdates"
    echo. & pause & cls
    exit
    Does anyone know if there is a command that will be accepted in a Batch file to wait say 15 seconds from the end of one update being integrated to the start of the next update being integrated please?

    It needs to be in or around the DISM command:
    Dism /Image:"C:\Win7ISO\OFFLine" /Add-Package /PackagePath:"C:\Win7ISOUpdates"

    I just thought that this might then not give me the error(s)!

    Another option would be to list EACH of the 21 updates on seperate DISM lines. Then I could use pause after each one and just wait 15 seconds before I Press any key to continue . . .. I have actually just done it this way and did not receive any errors, so it is definately connected to the fact that there needs to be a short delay between finishing integrating one update before it goes onto the next one, hence the reason why I am looking for a command that will work in the Batch file.

    I am so so close to finishing this!

    Any ideas and help will be greatly apprecited!

    Thanks in advance.
    Attached Thumbnails Attached Thumbnails Does the order of integrating Windows updates into install.wim matter?-piture-1.png  
    Last edited by Paul Black; 20 Mar 2018 at 12:27.
      My Computer


  5. Posts : 16,132
    7 X64
       #5

    The pending updates will only complete when you install windows to a drive.

    So adding a 15 second delay to the batch will make no difference.
      My Computers


  6. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
    Thread Starter
       #6

    Thanks for the reply SIW2, it is appreciated.

    SIW2 said:
    The pending updates will only complete when you install windows to a drive.
    So adding a 15 second delay to the batch will make no difference.
    I do understand that part of it.

    But why then:

    [1] Do the two updates install OK individually?
    [2] Install OK if I do them last (through the Batch script) after ALL the other updates?
    [3] Does it really matter what order they are installed in anyway?

    On my investigations and the tests that I have carried out on this (it has taken quite a while!), I still think it has something to do with the fact that they need more time (especially those 2 updates) to install before going onto the next one. This is proven because they install OK individually.

    I just can't figure out how to do this in the Batch script!

    Does it really matter what order they are installed in anyway?

    Thanks in advance.
    Last edited by Paul Black; 20 Mar 2018 at 04:40.
      My Computer


  7. Posts : 16,132
    7 X64
       #7

    Does it really matter what order they are installed in anyway?
    I posted earlier that some updates require exclusive access - that means no other updates can be integrated if those are still pending.

    I am not sure if that is the case in your scenario. It is a long time since I bothered to do it the long way. Using simplix or dism++ is the simple way.
      My Computers


  8. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
    Thread Starter
       #8

    Thanks for the reply SIW2, it is appreciated.

    SIW2 said:
    The pending updates will only complete when you install windows to a drive.
    So adding a 15 second delay to the batch will make no difference.
    The main thing is that those 2 updates wouldn't integrate into the offline install.wim when run in sequence. They only integrated correctly when they were run after all the other updates were integrated.

    I totally agree with you about the 15 seconds delay after the testing that I have spent ALL day on.

    SIW2 said:
    I posted earlier that some updates require exclusive access - that means no other updates can be integrated if those are still pending.
    I agree with you but does this also apply to integrating OFFLINE which is what I am doing?
    I totally agree if the integration was to be done on a Live system.

    SIW2 said:
    It is a long time since I bothered to do it the long way. Using simplix or dism++ is the simple way.
    As I said previously, I am using this to learn new things and broaden my knowledge on the different ways things can be done!

    OK, here is an update of todays tests (some aren't worth mentioning so I won't).

    TEST 1:

    I ran ALL the updates stored in the C:\Win7ISOUpdates folder from my Batch file (stacked one underneath the other using DISM as per the code below, I have snipped the middle bit out to save space) so I could see if they integrated successfully like this:

    Code:
    echo off
    echo.
    Dism /Image:C:\Win7ISO\OFFLine /Add-Package /PackagePath:C:\Win7ISOUpdates\01-windows6.1-kb3020369-v4-x64.msu
    Dism /Image:C:\Win7ISO\OFFLine /Add-Package /PackagePath:C:\Win7ISOUpdates\02-windows6.1-kb3125574-v4-x64.msu
    ...etc...
    Dism /Image:C:\Win7ISO\OFFLine /Add-Package /PackagePath:C:\Win7ISOUpdates\18-windows6.1-kb4054521-x64.msu
    exit
    RESULTS: They ALL completed 100% successfully!

    COMMENTS: Although this is a long winded way of doing it, and more code is neccessary, it WORKS!!!

    CONCLUSION:

    This says to me that the errors specified in my previous post are caused/related to the command:

    Dism /Image:"C:\Win7ISO\OFFLine" /Add-Package /PackagePath:"C:\Win7ISOUpdates"

    ...specifically the "C:\Win7ISOUpdates" part!!!

    TEST 2:

    I then run the following:

    Code:
    echo off
    echo.
    echo [3] Integrating ALL the updates (.cab, .msu) stored in the folder 
    echo C:\Win7ISOUpdates...
    echo.
    For %%U in (C:\Win7ISOUpdates\*.msu) do Dism /Image:C:\Win7ISO\OFFLine /Add-Package /PackagePath:%%U
    echo.
    pause
    exit
    RESULTS: They ALL completed 100% successfully!

    COMMENTS: The code is minimal and it WORKS!!!

    CONCLUSION:

    This DEFINATELY says to me that the errors specified in my previous post are caused by the command:

    Dism /Image:"C:\Win7ISO\OFFLine" /Add-Package /PackagePath:"C:\Win7ISOUpdates"

    ...DEFINATELY the "C:\Win7ISOUpdates" part!!!

    Thanks in advance.
      My Computer


  9. Posts : 6,021
    Win 7 HP SP1 64-bit Vista HB SP2 32-bit Linux Mint 18.3
    Thread Starter
       #9

    Just a few observations and comments about what my testing has highlighted.

    Observation 1:

    Although some updates may give an error during integration, if they are integrated again (at the end of the other updates) it is more than likely that they will be successfully.

    However, when you run Dism /Image:C:\Win7ISO\OFFLine /Get-Packages it shows ALL the Packages integrated which includes those that were run again at the end.

    But, is the Get-Packages output correct? I don't know!

    As I said previously, after I had run Dism /Image:C:\Win7ISO\OFFLine /Get-Packages > C:\Win7Lists\Packages.txt to output the Get-Packages to a .txt file, when I looked at that file it had put them ALL in ascending order.

    The question is, is the Get-Packages order the actual order that they are going to be installed in, OR, is the Get-Packages order just a sorted file for convenience to find things easier?

    If the Get-Packages order IS the order that they are actually going to be installed in then it DOESN'T make a difference which order they are integrated in! This is purely for OFFLINE integration as opposed to ONLINE/LIVE integration.

    It would be nice to know for curiosities sake!

    Observation 2:

    The most interesting thing that I found about the Get-Packages file was that if you ran several different tests, it doesn't reset the Get-Packages file, but adds any NEW data to it. This is in the OFFLINE install.wim file so it could be dangerous, but more important it is wrong because it includes data that you DON'T want.

    Let's say for example that you ran 5 tests, and the first 4 tests were not what you wanted. Then the 5th test you ran was OK. The Get-Packages file will contain data from ALL 5 tests, even though the first 4 tests were wrong and discarded and you started again.

    The only way that I could get around this was to DELETE the entire folder where I had extracted (using 7-Zip) the files from the original ISO to. Then I had to re-create that folder and re-extract the files to it. This then reset everything back to the original untouched Get-Packages data. Then when you run the new integration process (because you know it is going to work and is right) the Get-Packages file will ONLY include the new data from this process.

    I hope someone will find this information useful if they ever find themselves in the same situation!

    If my assumptions are wrong about any of the above, or I am not accurate in what I have written, then please let me know!

    Thanks in advance.
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 08:45.
Find Us