In this article, I will present a migration or version upgrade for Windows 10 or Windows 11.
I do not use patch management for this for the following reasons:
- I like to customize my sources (at a minimum, adding netfx3)
- I often need to manage multiple languages
Therefore, I will use a distribution package, which will allow me to handle drivers via the Portal Manager and control my deployments.
Version Upgrade
Prerequisites
To begin:
- We will need Windows 10 or Windows 11 sources
- A serial number if not using VL sources (KMS)
Error with Multiple Languages
- If the ISO language does not match the OS language, the setup will not migrate your applications.
- You may also see this type of error message (warning)
Multi-Language Sources
To create a multi-language ISO, you can:
- Follow this tutorial: Add multilingual support to Windows Setup
- Create a multi-index install.wim (one index per language). From experience, I prefer using this solution.
Installation Scripts
https://github.com/DavidWuibaille/Repository/tree/main/Windows/Windows10/ScriptUpgradeBatch
- upgrade_Install.cmd => main script
- upgrade_setupcomplete.cmd => end of migration script
- upgrade_GetPendingReboot.cmd => script to check for pending reboots
- upgrade_GetWim.cmd => secondary script to list the install.wim indexes
- upgrade_Cleanup.cmd => secondary script to clean up (free up disk space)
Distribution Package
upgrade_Install.cmd
This script should be adapted to your needs.
For multi-language use (with indexes), modify the following:
Set IndexWIM=0
IF /I %culture% EQU en-US Set IndexWIM=1
IF /I %culture% EQU es-ES Set IndexWIM=2
IF /I %culture% EQU fr-FR Set IndexWIM=3
IF /I %culture% EQU it-IT Set IndexWIM=4
IF /I %culture% EQU pt-PT Set IndexWIM=5
For single-language use, remove /installfrom and /imageindex:
"%SourceISO%setup.exe" /quiet /EULA accept /NoReboot /auto Upgrade /installdrivers c:\drivers /DynamicUpdate Disable /postoobe "%SourceISO%upgrade_setupcomplete.cmd"
Note: The /EULA accept option is related to Windows 11; for Windows 10, this option is not necessary.
Creating the EPM Package
- We will create a simple batch deployment task containing the Windows 10 sources.
- Do not forget the “Additional files”
- Also add the Windows 10 logos for the Workspace
Scheduled Tasks
Overview
I will create 3 tasks:
- A task for caching
- A task for the Application Portal => simplifies pilot systems
- A standard deployment task
Reboot Management
- In the agent configurations, I created a configuration to force reboot requests. Options available:
- Add a specific message for this migration
- Manage automatic reboots for users not logged in
- In the deployment tasks (except the pre-cache task), select reboot management
Caching Tasks
- Create a first task for caching the sources on the systems
Application Portal Task
- Create a second task to display Windows 10/11 in the Application Portal
=> Display in the workspace
Standard Deployment Task
- The last task will be used for deployment.