You are here:   Research
  |  Login

Welcome to my blog, quickest way to find articles is usually to search for them.

Search in All Title Contents

How to create a Windows 10 Enterprise build 9860 ISO

Oct 22 2014

Since there is no ISO download of Windows 10 Enterprise Technical Preview build 9860 (at least not yet), I thought a little PowerShell that created one from the downloaded preview update could be handy.

Update 2015-01-24: Luckily for the Windows 10 9926 build, as well as for the Windows 10 9879 build, Microsoft have released ISO's. No need to use these post for those.

Update 2015-03-21: For creating a Windows 10 build 10041 ISO, see the How to REALLY create a Windows 10 build 10041 ISO, no 3rd party tools needed post.

Creds: @Chris123NT has a pretty cool post here, however linked together with some crapware I don’t like, but still good info… Respect!

Disclaimer: This is probably not even remotely supported, so don’t blame me if something doesn’t work as it should (but please let me know)

Note: If you want to build an ISO that also contain drivers, updates and applications, view my post on how to deploy Windows 10 build 9860 with MDT 2013. In MDT it’s super-easy to generate an ISO :)

Anyway. everything you need to create a clean, default ISO, is in the install.esd file which you find in the C:\RecoveryImage folder after upgrading a machine to build 9860.

The install.esd file after upgrading build 9841 to build 9860.

Viewing the Install.esd file

ESD files were introduced in Windows 8.1, and are simply highly compressed versions of a normal WIM file. They are often called a Push-Button Reset Image. You cannot mount or service an ESD file, and you will find they take forever to extract (decompress) information from. But they are smaller than the normal WIM file, about 30 percent or so.

If you want to review the content of the install.esd, you can use the dism command to do so:

dism.exe /Get-WimInfo /WimFile:C:\RecoveryImage\Install.esd

Note: You would think that the PowerShell DISM cmdlet would let you view the install.esd file, but nope... so dism.exe it is…

The Windows 10 Enterprise image, build 9860.

Convert the install.esd into a bootable ISO

Here is a small PowerShell script I put together that takes care of the conversion. I added documentation inline in the script so it should not be too hard to follow.

Note: You need to copy oscdimg.exe from Windows ADK 8.1 to C:\oscdimg for the script to work.

# Note, only tested on Windows 10 build 9860, x64 Enterprise edition.
# The native DISM cmdlets didn't like the ESD files very much, so using dism.exe instead.

$ESDFile = 'C:\RecoveryImage\Install.esd'
$ISOMediaFolder = 'C:\ISO\Media'
$ISOFile = 'C:\ISO\Windows10_build9860.iso'
$PathToOscdimg = 'C:\oscdimg'

Write-Output "Checking for oscdimg.exe"
If (Test-Path $PathToOscdimg\oscdimg.exe){
    Write-Output "Oscdimg.exe found, OK, continuing..." 
    Write-Output ""
Else {
    Write-Output "Oupps, cannot find Oscdimg.exe. Aborting"

# Create ISO folder structure
New-Item -ItemType Directory $ISOMediaFolder
dism.exe /Apply-Image /ImageFile:$ESDFile /Index:1 /ApplyDir:$ISOMediaFolder

# Create empty boot.wim file with compression type set to maximum
New-Item -ItemType Directory 'C:\EmptyFolder'
dism.exe /Capture-Image /ImageFile:$ISOMediaFolder\sources\boot.wim /CaptureDir:C:\EmptyFolder /Name:EmptyIndex /Compress:max

# Export base Windows PE to empty boot.wim file (creating a second index)
dism.exe /Export-image /SourceImageFile:$ESDFile /SourceIndex:2 /DestinationImageFile:$ISOMediaFolder\sources\boot.wim /Compress:Recovery /Bootable

# Delete the first empty index in boot.wim
dism.exe /Delete-Image /ImageFile:$ISOMediaFolder\sources\boot.wim /Index:1

# Export Windows PE with Setup to boot.wim file
dism.exe /Export-image /SourceImageFile:$ESDFile /SourceIndex:3 /DestinationImageFile:$ISOMediaFolder\sources\boot.wim /Compress:Recovery /Bootable

# Display info from the created boot.wim
dism.exe /Get-WimInfo /WimFile:$ISOMediaFolder\sources\boot.wim 

# Create empty install.wim file with MDT/ConfigMgr friendly compression type (maximum)
dism.exe /Capture-Image /ImageFile:$ISOMediaFolder\sources\install.wim /CaptureDir:C:\EmptyFolder /Name:EmptyIndex /Compress:max

# Export Windows Technical Preview to empty install.wim file
dism.exe /Export-image /SourceImageFile:$ESDFile /SourceIndex:4 /DestinationImageFile:$ISOMediaFolder\sources\install.wim /Compress:Recovery

# Delete the first empty index in install.wim
dism.exe /Delete-Image /ImageFile:$ISOMediaFolder\sources\install.wim /Index:1

# Display info from the created install.wim
dism.exe /Get-WimInfo /WimFile:$ISOMediaFolder\sources\install.wim 

# Create the Windows Technical Preview ISO
# For more info on the Oscdimg.exe commands, check this post:

$BootData='2#p0,e,b"{0}"#pEF,e,b"{1}"' -f "$ISOMediaFolder\boot\","$ISOMediaFolder\efi\Microsoft\boot\efisys.bin"

$Proc = Start-Process -FilePath "$PathToOscdimg\oscdimg.exe" -ArgumentList @("-bootdata:$BootData",'-u2','-udfver102',"$ISOMediaFolder","$ISOFile") -PassThru -Wait -NoNewWindow
if($Proc.ExitCode -ne 0)
    Throw "Failed to generate ISO with exitcode: $($Proc.ExitCode)"


The Windows Technical Preview ISO

After running the script, you get the Windows10_build9860.iso

The Windows 10 build 9860 ISO.

Once you have the ISO you can either mount a virtual machine on it, burn it to a DVD, or copy the content to a USB stick you made active and then install Windows 10 Build 9860 from it.

Installing Windows 10 Build 9860 from the new ISO.

Windows 10 build 9860 deployed from the ISO.

Happy deployment, Johan

Happy deployment, and thanks for reading!

What our lawyers makes us say:

This information is provided "AS IS" with no warranties, confers no rights and is not supported by the authors or Deployment Artist.

Copyright © 2017 by Deployment Artist (the company behind deployment research). All rights reserved. No part of the information on this web site may be reproduced or posted in any form or by any means without the prior written permission of the publisher.

Shorthand: Don't pass off our work as yours, it's not nice.

Blog Archive