When doing Windows 10 Servicing, meaning going from one Windows 10 version to the next, it makes absolute sense to do that upgrade using an already updated image. In this post you find a script that does exactly that. This image can obviously also be used for the image you use if upgrading from Windows 7 to Windows 10 (for the few orgs that does).
Background – Understanding Windows 10 Servicing
Each version of Windows 10 typically has a base support of 18 months (some exceptions apply), meaning that you should make sure to upgrade to the next version before the support ends. If not, you don't get any more security updates, and that's not good. Once the next version (feature update) is installed, you keep the system updated and secure by installing monthly cumulative updates. However, sometimes, like in May 2018, in order to apply the May 2018 CU for Windows 10, you also needed a servicing stack update (KB4132650), which also needs another reboot (yuk).
When servicing Windows 10 offline you should also update the WinRE.wim (hiding inside the install.wim/index), and index 2 of the boot.wim (Index 2 is the setup image, Index 1 is no longer used). For WinRE, the monthly updates includes OS fixes that might be needed for a future Recovery experience or upgrade success. Microsoft do fixes a few issues that way. For WinPE, the monthly updates patches setup for media boot scenarios if you are going to use the boot.wim for deployment purposes. Now, the boot.wim image is not used for In-Place Upgrades, but why not update it while you are running the script anyway 🙂
Creds: Big thanks to Mike Terrill (@miketerrill) who lead me on the right track when the May 2018 CU gave me some headache due to the servicing update requirement, and to Sudhagar Thirumoolan @sudhagart who provided info related to WinRE and WinPE updates.
Upgrading your image offline
Unlike images used for bare metal deployment, which happily accepts images that have been captured via both build and capture processes as well as offline servicing, images that you use for Windows 10 servicing (upgrades / feature upgrades), has proven works best when serviced offline. Here follows high-level steps of the offline servicing process.
- Mount the Windows 10 ISO of the version you are upgrading to
- Update the core Windows 10 WIM (install.wim / index)
- Extract the Windows 10 Enterprise or Windows 10 Education index from the install.wim (If you're deploying Windows 10 Pro you're doing it wrong)
- Mount the extracted WIM image
- If the CU requires a servicing stack update (SSU), again, like for the May 2018 CU, apply that SSU first
- Apply the CU
- Apply the latest Adobe Flash update
- Cleanup the image to reduce size
- Add .NET Framework 3.5
- Update WinRE which is lurking inside the install.wim
-
- Extract the WinRE.wim from the install.wim
- Mount the WinRE.wim
- If the CU requires a servicing stack update (SSU), again, like for the May 2018 CU, apply that SSU first
- Apply the CU
- Cleanup the image to reduce size
- Dismount the WinRE image and save the changes
- Export to a new image, again to reduce size
-
- Mount the boot.wim, index 2
- If the CU requires a servicing stack update (SSU), apply that SSU first
- Apply the CU
- Cleanup the image to reduce size
- Dismount the WinRE image and save the changes
- Export to a new image, again to reduce size
Note #1: Microsoft currently don't offer any supported solution for updating the compatibility database and setup files in the image, however there a few community solutions out there that does it. Check these links:
- http://garytown.com/ipu-offline-dynamic-updates
- http://www.asquaredozen.com/2018/08/20/adding-dynamic-updates-to-windows-10-in-place-upgrade-media-during-offline-servicing/
- http://www.osdeploy.com/osbuilder/overview
- http://github.com/SCConfigMgr/ConfigMgr/blob/master/Operating%20System%20Deployment/Windows%20Servicing/Invoke-WindowsImageOfflineServicing.ps1
Note #2: Don't even think about doing offline servicing from older operating system like Windows 7 or Windows Server 2012 (not R2), even though it's supported, I have seen it breaking the image badly. Service Windows 10 from a machine running Windows 10 or Windows Server 2016.
The Script
The script is available on GitHub, and please add comments and/or improve it further:
http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Create-W10RefImageViaDISM.ps1
Happy Deployment / Johan
Sorry for the dumb question, but after updating the boot.wim what do we need to do with it? Place it into the Win10 upgrade package sources folder with the install.wim? Or place it in the sms_sitename\osd\boot\x64 folder and regenerate the SCCM boot images? Thanks for all your work Johan.
For IPU you replace the files in where they are on the media, but I really recommend using OSDBuilder since it takes care of everything for you 🙂
Hi Johan,
Can you explain
"(If you're deploying Windows 10 Pro you're doing it wrong)"
Why is Pro doing it wrong?
Is there a way to use Enterprise to build and Pro activation on deploy?
Cheers and thanks
Windows 10 Pro is the Fiat version of Windows 10. Windows 10 Enterprise and Education is the Ferrari version of Windows 10. Jokes aside, Windows 10 Pro is missing quite many management and security features, and should not be used.