HOWTO create an All-in-One Windows 7 .ISO updated to April 2016 (or later)

Windows 7 Update Pack discussion.
Post Reply
Kurt_Aust
Posts: 96
Joined: Fri Jul 25, 2008 6:23 pm
Location: Sydney, Australia

HOWTO create an All-in-One Windows 7 .ISO updated to April 2016 (or later)

Post by Kurt_Aust » Sun Jul 31, 2016 1:20 am

With the release of KB3125574 you can now create a Windows 7 install image updated to April 2016 (or later), this guide will tell you how.


First download Win7_ISO_Update.7z and extract it on a drive that has at least 20GB of free space.
SHA-1: 6EDAD7DB67A69A99E02EA03F352697F01364756B

Then copy the contents of the DVD install image you wish to update to either the \7SP1-64\ or \7SP1-32\ folder as appropriate.

Finally download the needed update files to the \7RVM\ folder, being:
KB3020369 - Required, Servicing Stack update
KB2670838 - Optional, Platform update, see notes
KB3125574 - Required, Convenience Rollup update
They are all digitally signed ( is a direct link to the file, because Microsoft Update Catalog sucks).

For 64-bit installations (497MB total):
| Windows6.1-KB3020369-x64.msu
| Windows6.1-KB2670838-x64.msu
| windows6.1-kb3125574-v4-x64_(SHA-1).msu

For 32-bit installations (325MB total):
| Windows6.1-KB3020369-x86.msu
| Windows6.1-KB2670838-x86.msu
| windows6.1-kb3125574-v4-x86_(SHA-1).msu

Optionally you can also download the Windows 7 Current Cumulative Update (not truly cumulative yet) and save it to the \7CCU\ folder. Look for it amongst the most recent (search past month) Security Bulletins, it will be described as the "Security Monthly Quality Rollup for Windows 7".


After you have downloaded all the files required, simply run as an administrator the appropriate command (batch) file for the architecture you are using. The finalised DVD image will be created in the same folder as the batch file, note that 64-bit images can only be updated on 64-bit hosts.


If you are updating both 32 and 64 bit images then once that is done you can create a combined image with all versions and architectures by running the merger command (batch) file but the final image will have 2 notable limitations:
  1. It won't fit on a single layered DVD
  2. It can't be used for 64-bit recovery

Important notes:
  1. Be sure to only place one update patch (per architecture) in \7CCU\
  2. (N/A if using \7CCU\) Windows Update has been taking several hours to just detect (not download & install) required patches for months. German blogger Dalai has created a workaround you can read about here to cut the search time taken back down to minutes.
  3. The Platform update (KB2670838) is recommended but has been known to cause issues on laptops with hybrid Intel/AMD graphics, see the knowledge base article for details.
Last edited by Kurt_Aust on Sat Apr 14, 2018 5:29 pm, edited 10 times in total.

Kurt_Aust
Posts: 96
Joined: Fri Jul 25, 2008 6:23 pm
Location: Sydney, Australia

Post by Kurt_Aust » Sun Jul 31, 2016 1:21 am

ChangeLog

11 Jun 2016: motokiume posts initial version, all thanks to him

31 Jul 2016: Kurt's initial refined release

19 Aug 2016: Dropped KB3172605 (as it no longer fixes the WU problem) and linked the Woody's take on Dalai's fix. No changes are needed to the downloaded command scripts.

9 Oct 2016: Changed the mount-wim command from using the image name to using the image number for greater compatibility across DISM versions.

16 Oct 2016: Added info on KB2670838 compatibility issues.

25 Dec 2016: Added support for Win7 current cumulative update.
Last edited by Kurt_Aust on Sun Dec 25, 2016 5:31 am, edited 5 times in total.

Kurt_Aust
Posts: 96
Joined: Fri Jul 25, 2008 6:23 pm
Location: Sydney, Australia

Post by Kurt_Aust » Sun Jul 31, 2016 1:23 am

ISO updater for 64-bit Win7.cmd (the other batch files are very similar)

Code: Select all

@Echo off
Title Creating updated ISO Image of Windows 7 64-bit
Set Edition=0
Set Date=Apr2016
MkDir "%~dp07Bas"
MkDir "%~dp07Hom"
MkDir "%~dp07Pro"
MkDir "%~dp07Ult"
Copy /B "%~dp07CCU\Windows6.1-KB*-x64_*.msu" "%~dp07RVM\Win7-Current-Cumulative-x64.msu"
CLS
Echo.
Echo Close all other windows and disable your anti-virus program, then
Pause
Echo.
Echo.
Echo.
Echo Getting image info
Dism /Get-WIMInfo /WimFile:"%~dp07SP1-64\sources\install.wim"
Echo.
Echo.
Echo.
Echo Which Edition?  HomePremium(1), Professional(2), Ultimate(3) or All(0)
Set /P Edition=(Default All):
If exist "%~dp07RVM\Win7-Current-Cumulative-x64.msu" Echo.
If exist "%~dp07RVM\Win7-Current-Cumulative-x64.msu" Echo Date of Current Cumulative update? (no spaces or quotes)
If exist "%~dp07RVM\Win7-Current-Cumulative-x64.msu" Set /P Date=(Ex Apr2016):
Echo.
Echo.
Echo.
Echo Mounting images
If %Edition%==0 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:1 /MountDir:"%~dp07Bas"
If %Edition%==0 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:2 /MountDir:"%~dp07Hom"
If %Edition%==1 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:2 /MountDir:"%~dp07Hom"
If %Edition%==0 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:3 /MountDir:"%~dp07Pro"
If %Edition%==2 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:3 /MountDir:"%~dp07Pro"
If %Edition%==0 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:4 /MountDir:"%~dp07Ult"
If %Edition%==3 Dism /Mount-WIM /WimFile:"%~dp07SP1-64\sources\install.wim" /Index:4 /MountDir:"%~dp07Ult"
TimeOut /T 5
Echo.
Echo.
Echo.
Echo.
Echo Applying Servicing Stack update
If %Edition%==0 Dism /Image:"%~dp07Bas" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==1 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==2 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
If %Edition%==3 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB3020369-x64.msu"
TimeOut /T 5
Echo.
Echo.
Echo.
Echo.
If not exist "%~dp07RVM\Windows6.1-KB2670838-x64.msu" goto SkipPlatformUpdate
Echo Applying Platform update
If %Edition%==0 Dism /Image:"%~dp07Bas" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==1 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==2 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
If %Edition%==3 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Windows6.1-KB2670838-x64.msu"
TimeOut /T 5
Echo.
Echo.
Echo.
Echo.
:SkipPlatformUpdate
Echo Applying Convenience Rollup update
If %Edition%==0 Dism /Image:"%~dp07Bas" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==0 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==1 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==0 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==2 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==0 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
If %Edition%==3 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu"
TimeOut /T 5
Echo.
Echo.
Echo.
Echo.
If not exist "%~dp07RVM\Win7-Current-Cumulative-x64.msu" goto SkipCurrentCumulative
Echo Applying Current Cumulative update
If %Edition%==0 Dism /Image:"%~dp07Bas" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==1 Dism /Image:"%~dp07Hom" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==2 Dism /Image:"%~dp07Pro" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==0 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
If %Edition%==3 Dism /Image:"%~dp07Ult" /Add-Package /PackagePath:"%~dp07RVM\Win7-Current-Cumulative-x64.msu"
TimeOut /T 5
Echo.
Echo.
Echo.
Echo.
:SkipCurrentCumulative
Echo Unmounting images
If %Edition%==0 Dism /Unmount-WIM /MountDir:"%~dp07Bas" /Commit
If %Edition%==0 Dism /Unmount-WIM /MountDir:"%~dp07Hom" /Commit
If %Edition%==1 Dism /Unmount-WIM /MountDir:"%~dp07Hom" /Commit
If %Edition%==0 Dism /Unmount-WIM /MountDir:"%~dp07Pro" /Commit
If %Edition%==2 Dism /Unmount-WIM /MountDir:"%~dp07Pro" /Commit
If %Edition%==0 Dism /Unmount-WIM /MountDir:"%~dp07Ult" /Commit
If %Edition%==3 Dism /Unmount-WIM /MountDir:"%~dp07Ult" /Commit
TimeOut /T 5
Echo.
Echo.
Echo.
Echo Moving modified files
Move "%~dp07SP1-64" "%~dp07SP2-64"
TimeOut /T 2
Echo.
Echo Removing attributes from "%~dp07SP2-64"
attrib -R -A -S -H "%~dp07SP2-64" /S /D
If %Edition%==0 del "%~dp07SP2-64\sources\ei.cfg"
TimeOut /T 2
Echo.
Echo.
Echo.
Echo Creating Windows 7 ISO
"%~dp07RVM\oscdimg-AMD64.exe" -lWin7_x64_%Date% -t04/26/2016,07:00:00 -h -m -u2 -b"%~dp07RVM\etfsboot.com" "%~dp07SP2-64" "%~dp0Win7_x64_%Date%.iso"
Del "%~dp07RVM\Win7-Current-Cumulative-x64.msu"
RmDir /S /Q "%~dp07Bas"
RmDir /S /Q "%~dp07Hom"
RmDir /S /Q "%~dp07Pro"
RmDir /S /Q "%~dp07Ult"
Echo.
Echo.
Echo Process completed, you may now
Pause
Last edited by Kurt_Aust on Sun Dec 25, 2016 5:32 am, edited 2 times in total.

Kurt_Aust
Posts: 96
Joined: Fri Jul 25, 2008 6:23 pm
Location: Sydney, Australia

Post by Kurt_Aust » Sun Jul 31, 2016 1:24 am

Reserved (just in case)

User avatar
=[FEAR]=JIGSAW
Posts: 384
Joined: Mon Feb 18, 2008 11:54 am
Location: Cape Town, South Africa

Post by =[FEAR]=JIGSAW » Mon Aug 01, 2016 6:35 am

This was really very nicely put together and easy to understand ... Thanks for taking the time to do this. ;)

PCBONEZ
Posts: 15
Joined: Sun Mar 27, 2016 2:59 am

Post by PCBONEZ » Sat Oct 15, 2016 5:14 pm

KB2670838 supposedly has (or had) issues, particularly for those using mobile chipsets.
https://www.google.com/search?q=KB26708 ... 8&oe=utf-8
.
Have those problems been worked out?
.
PCBONEZ

Kurt_Aust
Posts: 96
Joined: Fri Jul 25, 2008 6:23 pm
Location: Sydney, Australia

Re: HOWTO create an All-in-One Windows 7 .ISO updated to April 2016 (or later)

Post by Kurt_Aust » Sun Dec 25, 2016 5:33 am

Added support for Win7 current cumulative update.

User avatar
alsyundawy
Posts: 99
Joined: Mon Jun 28, 2010 5:47 pm

Re: HOWTO create an All-in-One Windows 7 .ISO updated to April 2016 (or later)

Post by alsyundawy » Mon Jan 16, 2017 11:11 am

need update with intgrated usb / chipset driver for support new hardware like skylake or kaby lake

Post Reply