1.    14 Jul 2017 #1
    Join Date : Aug 2015
    Posts : 23
    windows 10

    ISO for creator's upgrade including cumulative updates


    Is there any link to get an ISO that bundles the Cumulative updates with it? MSDN article seems to indicate it is available to those with MSDN subscriptions.
      My ComputerSystem Spec
  2.    14 Jul 2017 #2
    Join Date : Oct 2013
    Covington, Louisiana
    Posts : 730
    Windows 10 1703 Pro 64

    Read this tutorial and download the Media Creation Tool.

    Download Windows 10 ISO File

    The Media Creation Tool is updated to include the newer builds of W10 although it takes a while for MS to bring it current.
    It may be a Month or 2 behind the Cumulative updates but since the updates are Cumulative LU will only have to download the latest update to bring it current.

    Always download a fresh Media Creation Tool as it is updated to download the newest W10 ISO.

    Jim
      My ComputerSystem Spec
  3.    14 Jul 2017 #3

    Yup, MCT refreshes the distro sooner thatn MSDN (= Techbench from whence Heidoc tool gets the ISO's)

    ... but why not create your own...?

    I'm working on a script to do this ( seeing we are getting so many CU's)

    Code:
    #create temp extraction folder$Extractedfldr = Join-Path $env:TEMP "\Extracted\"
    
    
    if (Test-Path $Extractedfldr) {Remove-Item $Extractedfldr}
    $Extractedfldr = New-Item -ItemType Directory -Path $Extractedfldr
    
    
    #create temp mount folder
    $Mountfldr = Join-Path $env:TEMP "\Mount\"
    if (Test-Path $Mountfldr) {Remove-Item $Mountfldr}
    $Mountfldr = New-Item -ItemType Directory -Path $Mountfldr
    
    
    #Extract the iso to folder
    
    
    $isofile = Get-FileName "Select the ISO file" "ISO files (*.iso )|*.iso"
    
    
    $isofile = "'$isofile'"
    
    
    write-host Mount-DiskImage -ImagePath $isofile -PassThru
    
    
    $driveLetter = (Get-DiskImage $isofile | Get-Volume).DriveLetter
    
    
    Write-Host $driveLetter
    
    
    pause
    
    
    Copy-Item (Join-Path $driveLetter "\.*") $Extractedfldr
    
    
    $wimfile = Join-Path $Extractedfldr "\sources\install.wim"
    
    
    $ImageIndex = Get-WindowsImage -ImagePath $wimfile
    
    
    Write-Host $ImageIndex
    
    
    $Index = Read-Host -Prompt 'Enter the ImageIndex number to apply the update to...'
    
    
    Mount-WindowsImage -Path $Mountfldr -ImagePath $wimfile -Index $Index
    
    
    $inputfile = Get-FileName "Select the update file" "Cab files (*.cab)|*.cab|MSU files (*.msu)|*.msu"
    $inputfile = "'$inputfile.Trim()'"
    
    
    Dism /Image:$Mountfldr /Add-Package /PackagePath:$inputfile | Out-Null
    
    
    Dism /Image:$Mountfldr /Cleanup-Image /StartComponentCleanup /ResetBase | Out-Null
    
    
    Dismount-WindowsImage -Path $Mountfldr -Save
    
    
    ### Backup existing iso and create new ISO with new install.wim file into ISO
    
    
    $newfile = $isofile -replace ".iso", "_1.iso"
    
    
    Copy-Item $isofile $newfile
    
    
    dir $Mountfld -recurse | New-IsoFile -Path $newfile
    
    
    
    
    #Clean up
    Remove-Item -Path $Mountfldr
    Remove-Item -Path $Extractedfldr
    Dismount-DiskImage -ImagePath $isofile
    
    
    if (Test-Path $newfile) {
     Write-Host $newfile + " created..."
     }
    
    
    pause
    If you read PS you can just use the commands (don't worry about the fluff.. but you need to Mount, AddPackage, StartcomponentCleanup and Dismount-Save.

    ..then use UltraISO to overwrite the install.wim in the original ISO.
      My ComputerSystem Spec
  4.    15 Jul 2017 #4
    Join Date : Oct 2013
    A Finnish expat in Germany
    Posts : 12,979
    Windows 10 Pro

    Quote Originally Posted by Superfly View Post
    ... but why not create your own...?
    @Superfly, I hope you do not mind these remarks:

    First, a minor typo, you've missed a line break. The very first line in your code contains actually two lines, a remark (red font below) and a command (blue font); as it is now it can only produce an error.

    #create temp extraction folder$Extractedfldr = Join-Path $env:TEMP "\Extracted\"


    It should of course be in two lines:

    #create temp extraction folder
    $Extractedfldr = Join-Path $env:TEMP "\Extracted\"


    Second, Get-FileName is not a PS cmdlet, at least if you have not created or imported a script or an additional module containing it. I would use Read-Host instead to prompt user the name of the ISO:

    $isofile = Read-Host "Select the ISO file" "ISO files (*.iso )|*.iso"

    Kari
      My ComputerSystem Spec
  5.    15 Jul 2017 #5
    Join Date : Aug 2014
    Forever West
    Posts : 3,926
    Win10 Home and Pro, Win10 Insider Preview, Win7 Home, Linux Mint

    The last 4 times I used the MCT I got Version 1703 Build 15063.0 but updating to 15063.447 didn't take very long, about an hour on a 5Mbps connection.
      My ComputerSystem Spec
  6.    15 Jul 2017 #6

    Quote Originally Posted by Kari View Post
    @Superfly, I hope you do not mind these remarks:
    First, a minor typo, you've missed a line break. The very first line in your code contains actually two lines, a remark (red font below) and a command (blue font); as it is now it can only produce an error.

    #create temp extraction folder$Extractedfldr = Join-Path $env:TEMP "\Extracted\"


    It should of course be in two lines:

    #create temp extraction folder
    $Extractedfldr = Join-Path $env:TEMP "\Extracted\"


    Second, Get-FileName is not a PS cmdlet, at least if you have not created or imported a script or an additional module containing it. I would use Read-Host instead to prompt user the name of the ISO:

    $isofile = Read-Host "Select the ISO file" "ISO files (*.iso )|*.iso"

    Kari
    LOL... yup I edited it (...badly )

    .. and yes it's not a standard cmdlet.. (I was adding some nice to have gui features)

    here's the full code in case you are interested (NB very much work in progress.. still a bugs nest)
    Code:
    ########################################## Elevate ############################################################
    if (-not ([Security.Principal.WindowsPrincipal][System.Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
    {
        Start-Process PowerShell.exe -Verb Runas -ArgumentList $myInvocation.MyCommand.Definition;
      
        return;
    }
    
    
    ########################### Created: 23 May 2017 by Superfly ###############################################
    
    
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    
    
    ################################ Functions ###############################################
    
    
    Function Get-FileName($Description, $FileType)
    {
       
        $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
        $OpenFileDialog.title =$Description
        $OpenFileDialog.filter = $FileType
        $OpenFileDialog.ShowHelp = $true
        if ($OpenFileDialog.ShowDialog() -eq "OK") {
        $OpenFileDialog.filename
        }
        else {
        exit
        }
    }
    
    
    
    
    Function Get-FolderName($selectDirectory)
    {
        
        $FolderBrowserDialog = New-Object System.Windows.Forms.FolderBrowserDialog
        $FolderBrowserDialog.Description =$selectDirectory 
        $FolderBrowserDialog.ShowDialog() | Out-Null
        $FolderBrowserDialog.SelectedPath
    }
    
    
    
    
    
    
    function New-IsoFile  
    {  
      <#  
       .Synopsis  
        Creates a new .iso file  
       .Description  
        The New-IsoFile cmdlet creates a new .iso file containing content from chosen folders  
       .Example  
        New-IsoFile "c:\tools","c:Downloads\utils"  
        This command creates a .iso file in $env:temp folder (default location) that contains c:\tools and c:\downloads\utils folders. The folders themselves are included at the root of the .iso image.  
       .Example 
        New-IsoFile -FromClipboard -Verbose 
        Before running this command, select and copy (Ctrl-C) files/folders in Explorer first.  
       .Example  
        dir c:\WinPE | New-IsoFile -Path c:\temp\WinPE.iso -BootFile "${env:ProgramFiles(x86)}\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys.bin" -Media DVDPLUSR -Title "WinPE" 
        This command creates a bootable .iso file containing the content from c:\WinPE folder, but the folder itself isn't included. Boot file etfsboot.com can be found in Windows ADK. Refer to IMAPI_MEDIA_PHYSICAL_TYPE enumeration for possible media types: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366217(v=vs.85).aspx  
       .Notes 
        NAME:  New-IsoFile  
        AUTHOR: Chris Wu 
        LASTEDIT: 03/23/2016 14:46:50  
     #>  
      
      [CmdletBinding(DefaultParameterSetName='Source')]Param( 
        [parameter(Position=1,Mandatory=$true,ValueFromPipeline=$true, ParameterSetName='Source')]$Source,  
        [parameter(Position=2)][string]$Path = "$env:temp\$((Get-Date).ToString('yyyyMMdd-HHmmss.ffff')).iso",  
        [ValidateScript({Test-Path -LiteralPath $_ -PathType Leaf})][string]$BootFile = $null, 
        [ValidateSet('CDR','CDRW','DVDRAM','DVDPLUSR','DVDPLUSRW','DVDPLUSR_DUALLAYER','DVDDASHR','DVDDASHRW','DVDDASHR_DUALLAYER','DISK','DVDPLUSRW_DUALLAYER','BDR','BDRE')][string] $Media = 'DVDPLUSRW_DUALLAYER', 
        [string]$Title = (Get-Date).ToString("yyyyMMdd-HHmmss.ffff"),  
        [switch]$Force, 
        [parameter(ParameterSetName='Clipboard')][switch]$FromClipboard 
      ) 
     
      Begin {  
        ($cp = new-object System.CodeDom.Compiler.CompilerParameters).CompilerOptions = '/unsafe' 
        if (!('ISOFile' -as [type])) {  
          Add-Type -CompilerParameters $cp -TypeDefinition @' 
    public class ISOFile  
    { 
      public unsafe static void Create(string Path, object Stream, int BlockSize, int TotalBlocks)  
      {  
        int bytes = 0;  
        byte[] buf = new byte[BlockSize];  
        var ptr = (System.IntPtr)(&bytes);  
        var o = System.IO.File.OpenWrite(Path);  
        var i = Stream as System.Runtime.InteropServices.ComTypes.IStream;  
      
        if (o != null) { 
          while (TotalBlocks-- > 0) {  
            i.Read(buf, BlockSize, ptr); o.Write(buf, 0, bytes);  
          }  
          o.Flush(); o.Close();  
        } 
      } 
    }  
    '@  
        } 
      
        if ($BootFile) { 
          if('BDR','BDRE' -contains $Media) { Write-Warning "Bootable image doesn't seem to work with media type $Media" } 
          ($Stream = New-Object -ComObject ADODB.Stream -Property @{Type=1}).Open()  # adFileTypeBinary 
          $Stream.LoadFromFile((Get-Item -LiteralPath $BootFile).Fullname) 
          ($Boot = New-Object -ComObject IMAPI2FS.BootOptions).AssignBootImage($Stream) 
        } 
     
        $MediaType = @('UNKNOWN','CDROM','CDR','CDRW','DVDROM','DVDRAM','DVDPLUSR','DVDPLUSRW','DVDPLUSR_DUALLAYER','DVDDASHR','DVDDASHRW','DVDDASHR_DUALLAYER','DISK','DVDPLUSRW_DUALLAYER','HDDVDROM','HDDVDR','HDDVDRAM','BDROM','BDR','BDRE') 
     
        Write-Verbose -Message "Selected media type is $Media with value $($MediaType.IndexOf($Media))" 
        ($Image = New-Object -com IMAPI2FS.MsftFileSystemImage -Property @{VolumeName=$Title}).ChooseImageDefaultsForMediaType($MediaType.IndexOf($Media)) 
      
        if (!($Target = New-Item -Path $Path -ItemType File -Force:$Force -ErrorAction SilentlyContinue)) { Write-Error -Message "Cannot create file $Path. Use -Force parameter to overwrite if the target file already exists."; break } 
      }  
     
      Process { 
        if($FromClipboard) { 
          if($PSVersionTable.PSVersion.Major -lt 5) { Write-Error -Message 'The -FromClipboard parameter is only supported on PowerShell v5 or higher'; break } 
          $Source = Get-Clipboard -Format FileDropList 
        } 
     
        foreach($item in $Source) { 
          if($item -isnot [System.IO.FileInfo] -and $item -isnot [System.IO.DirectoryInfo]) { 
            $item = Get-Item -LiteralPath $item 
          } 
     
          if($item) { 
            Write-Verbose -Message "Adding item to the target image: $($item.FullName)" 
            try { $Image.Root.AddTree($item.FullName, $true) } catch { Write-Error -Message ($_.Exception.Message.Trim() + ' Try a different media type.') } 
          } 
        } 
      } 
     
      End {  
        if ($Boot) { $Image.BootImageOptions=$Boot }  
        $Result = $Image.CreateResultImage()  
        [ISOFile]::Create($Target.FullName,$Result.ImageStream,$Result.BlockSize,$Result.TotalBlocks) 
        Write-Verbose -Message "Target image ($($Target.FullName)) has been created" 
        $Target 
      } 
    } 
    
    
    ###############################################################################################################################################################
    
    
    #create temp extraction folder
    $Extractedfldr = Join-Path $env:TEMP "\Extracted\"
    
    
    if (Test-Path $Extractedfldr) {Remove-Item $Extractedfldr}
    $Extractedfldr = New-Item -ItemType Directory -Path $Extractedfldr
    
    
    #create temp mount folder
    $Mountfldr = Join-Path $env:TEMP "\Mount\"
    if (Test-Path $Mountfldr) {Remove-Item $Mountfldr}
    $Mountfldr = New-Item -ItemType Directory -Path $Mountfldr
    
    
    #Extract the iso to folder
    
    
    $isofile = Get-FileName "Select the ISO file" "ISO files (*.iso )|*.iso"
    
    
    $isofile = "'$isofile'"
    
    
    #$isofile = 'F:\Microsoft\Windows 10\Win10_1703\Win10_1703_EnglishInternational_x64_1.iso'
    
    
    
    
    write-host Mount-DiskImage -ImagePath $isofile -PassThru
    
    
    $driveLetter = (Get-DiskImage $isofile | Get-Volume).DriveLetter
    
    
    Write-Host $driveLetter
    
    
    pause
    
    
    Copy-Item (Join-Path $driveLetter "\.*") $Extractedfldr
    
    
    $wimfile = Join-Path $Extractedfldr "\sources\install.wim"
    
    
    $ImageIndex = Get-WindowsImage -ImagePath $wimfile
    
    
    Write-Host $ImageIndex
    
    
    $Index = Read-Host -Prompt 'Enter the ImageIndex number to apply the update to...'
    
    
    Mount-WindowsImage -Path $Mountfldr -ImagePath $wimfile -Index $Index
    
    
    $inputfile = Get-FileName "Select the update file" "Cab files (*.cab)|*.cab|MSU files (*.msu)|*.msu"
    $inputfile = "'$inputfile.Trim()'"
    
    
    Dism /Image:$Mountfldr /Add-Package /PackagePath:$inputfile | Out-Null
    
    
    Dism /Image:$Mountfldr /Cleanup-Image /StartComponentCleanup /ResetBase | Out-Null
    
    
    Dismount-WindowsImage -Path $Mountfldr -Save
    
    
    ### Backup existing iso and create new ISO with new install.wim file into ISO
    
    
    $newfile = $isofile -replace ".iso", "_1.iso"
    
    
    Copy-Item $isofile $newfile
    
    
    dir $Mountfld -recurse | New-IsoFile -Path $newfile
    
    
    
    
    #Clean up
    Remove-Item -Path $Mountfldr
    Remove-Item -Path $Extractedfldr
    Dismount-DiskImage -ImagePath $isofile
    
    
    if (Test-Path $newfile) {
     Write-Host $newfile + " created..."
     }
    
    
    pause
      My ComputerSystem Spec
  7.    4 Weeks Ago #7

    Made some progress on this script, but still not entirely happy with the way updates gets integrated - I'm not all that up to date with servicing stacks and what-not but for those that want to give it a bash.
    Extract and run from the folder - it needs oscdimg to be alongside it.

    UpdateWim.zip
      My ComputerSystem Spec

 


Similar Threads
Thread Forum
Multiple updates for same cumulative updates.
Cumulative updates are getting repeated in spite of successful installation. I have posted three weeks ago for ..102. Now again it has happened. Please see pic below. 140139 Is there something wrong with me or MS is failing? If I am wrong some...
Windows Updates and Activation
Windows 10 Creator Updates Start Locked
I clean installed windows 10 creator updates yesterday. after installed some application and setting my windows unfortunately my Start is locked. Locked here means it can do Pin or Unpin programs or Drag icon. But, after a few second, start is...
General Support
Cumulative updates
Hi All, I am having problems with the latest updates downloading and installing on my Desktop computer.. A search of the internet for Error code: (0x80073712) seems this is not a new occurrence, but it is new to me. The windows...
Windows Updates and Activation
MCT and cumulative updates
MCT and cumulative updates on a different website I recently read that it might be possible tosomehow include the cumulative updates in the creation process of the ISO. Is that true and if so, how is that process??
Installation and Upgrade
Microsoft Updates a Few Windows 10 Apps, Including Outlook Mail
Read more: http://news.softpedia.com/news/microsoft-updates-few-windows-10-apps-including-outlook-mail-498203.shtml
Windows 10 News
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd
All times are GMT -5. The time now is 08:12.
Find Us
Twitter Facebook Google+ Ten Forums iOS App Ten Forums Android App



Windows 10 Forums