How to create a Windows 10 Enterprise build 9860 ISO

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.

install-esd_thumb1_thumb2
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.

 dismposh
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"
    Break
}
 
# 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: http://support2.microsoft.com/kb/947024
 
$BootData='2#p0,e,b"{0}"#pEF,e,b"{1}"' -f "$ISOMediaFolder\boot\etfsboot.com","$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.

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.

image
Installing Windows 10 Build 9860 from the new ISO.
image
Windows 10 build 9860 deployed from the ISO.

Happy deployment, Johan

About the author

Johan Arwidmark

5 1 vote
Article Rating
Subscribe
Notify of
guest
14 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Arjan.Mensch
Arjan.Mensch
6 years ago

Hmm, oke, missed those. I thought they would be released later for Enterprise 🙂

Admin
Admin
6 years ago

Good to know, but luckily for the 9926 build, as well as for the 9879 build, Microsoft have released ISO's.

It as only for the 9860 build they didn't.

/ Johan

Arjan.Mensch
Arjan.Mensch
6 years ago

Hey Johan,
This works for yesterday's 9926 as well, thanks again!

Arjan.Mensch
Arjan.Mensch
6 years ago

Worked like a charm, thanks for this!

JeepJockey
JeepJockey
6 years ago

I think you are correct there Johan, the date on the .wim is around the time of build 9841 being released.

Admin
Admin
6 years ago

Hi David,

I haven't seen that behavior myself, but I have heard about it when the upgrade fails, and then succeeds when you try a second time.

If you run "dism.exe /Get-WimInfo /WimFile:C:RecoveryImageInstall.wim /Index:1" that install.wim is likely to be the old build (9841) instead of 9860.

/ Johan

JeepJockey
JeepJockey
6 years ago

Hi Johan

Nice article but after upgrading to build 9860 my RecoveryImage folder only contains the original install.wim not the expcted install.esd file. Any ideas?

Cheers
David

Admin
Admin
6 years ago

Why waste time researching that when there is a free tool that works 🙂 (other than it would be cool)

/ Johan

2Pint Andreas
2Pint Andreas
6 years ago

You can use the COM interface to call the same things that oscdimg.exe uses! 🙂

Admin
Admin
6 years ago

Hi Andreas,

I would have used the native DISM cmdlets if they had worked 🙂

/ Johan

Gorilla1968
Gorilla1968
6 years ago

Hallo, funktioniert perfekt. Danke!!

2Pint Andreas
2Pint Andreas
6 years ago

Well Johan, I am disapointed that you dont use the native powershell commands to create the .iso, but use a crap .exe… tssss… thought more of you! 😉

Admin
Admin
6 years ago

Thanks, added a note about copying oscdimg.exe

/ Johan

Apemantus
Apemantus
6 years ago

This was really useful thanks, now on to MDT..

Do need to actually download Oscdimg.exe to c:oscdimgoscdimg.exe for script to run though.


>