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"
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.

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.


Happy deployment, Johan
Hmm, oke, missed those. I thought they would be released later for Enterprise 🙂
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
Hey Johan,
This works for yesterday's 9926 as well, thanks again!
Worked like a charm, thanks for this!
I think you are correct there Johan, the date on the .wim is around the time of build 9841 being released.
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
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
Why waste time researching that when there is a free tool that works 🙂 (other than it would be cool)
/ Johan
You can use the COM interface to call the same things that oscdimg.exe uses! 🙂
Hi Andreas,
I would have used the native DISM cmdlets if they had worked 🙂
/ Johan
Hallo, funktioniert perfekt. Danke!!
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! 😉
Thanks, added a note about copying oscdimg.exe
/ Johan
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.