Configuration Manager gives you three ways to move devices to Windows 11 (or to the next Windows 11 version): deploy the feature update like any software update, automate that with a servicing plan, or run an in-place upgrade task sequence. They all end with Windows Setup doing the upgrade, but they differ in control, content and troubleshooting. In this post I'll compare them, set each one up, and show how to gate upgrades with a compatibility scan, read the Setup logs and verify the result.
Errors this guide fixes
0xC1900210smsts.log (compatibility scan)0xC1900208smsts.log / setuperr.log0xC1900101smsts.log / setuperr.log0x80070070smsts.log / setuperr.log+1 more guide
Note: Microsoft's support matrix (checked October 2026) lists Windows 11 23H2, 24H2 and 25H2 as supported clients on Configuration Manager 2509 and later, and 26H2 (build 10.0.26300) from version 2603. Re-check Support for Windows 11 before you upgrade a fleet to a new release.
How it works: pick the right method#
| Method | What it does | Use it when |
|---|---|---|
| Feature update deployment | Deploys the Windows 11 feature update from Software Library › Windows Servicing › All Windows Feature Updates, with deadlines and maintenance windows like any update | Standard devices that need no work before or after the upgrade |
| Servicing plan | An automatic deployment rule for feature updates: it picks upgrades that match your filters after a deferral period and deploys them | You've proven the feature update path and want hands-off rings |
| Upgrade task sequence | Runs Windows Setup from an OS upgrade package inside a task sequence with Prepare, Post-Processing and Rollback groups | You need a compatibility scan gate, drivers, firmware, app removal or custom actions around the upgrade |
Before any of them, check readiness. Windows 11 needs TPM 2.0, UEFI with Secure Boot capability, a supported 64-bit processor, 4 GB of memory and 64 GB of storage. Windows 10 reached end of support on October 14, 2025, so any remaining Windows 10 device needs an upgrade, a replacement or Extended Security Updates.
Step-by-step#
Option 1: deploy the feature update#
- In the software update point component properties, synchronize the Upgrades classification and the Windows 11 product, then run a sync.
- In All Windows Feature Updates, find the Windows 11 feature update for your language and architecture, and select Deploy. Target a pilot collection first, with a deadline and the same maintenance window rules you use for monthly updates.
- Decide on Dynamic Update: the Enable Dynamic Update for feature updates client setting (Software Updates group) lets Windows Setup download cumulative updates, drivers, language packs and features on demand from the internet during the upgrade, so devices need that access.
Once pilots succeed, a servicing plan can repeat this for later releases: Windows Servicing › Servicing Plans › Create Servicing Plan, set the target collection, the number of days to wait after Microsoft releases an upgrade, the upgrade filters (language, architecture) and the deployment schedule. Check which upgrades the plan selects before you enable it.
Option 2: build an upgrade task sequence#
- Download the latest Windows 11 ISO from the Microsoft 365 admin center. Offline servicing of Windows 11 upgrade packages isn't supported, so refresh the package from a newer ISO instead of patching it.
- In Software Library › Operating Systems › Operating System Upgrade Packages, add an upgrade package that points to the entire extracted ISO and distribute it. The console may show the image name as Windows 10; that's expected.
- Create a task sequence with Upgrade an operating system from an upgrade package. The template includes Prepare for Upgrade, Upgrade the Operating System, Post-Processing, Rollback and Run Actions on Failure groups.
- For drivers, add Download Package Content steps in Prepare for Upgrade, one per model with a WMI condition, all saving to the same custom variable. Use that variable (with its numeric suffix, for example
%mycontent01%) as Staged content in the drivers section of the Upgrade Operating System step. - Decide on Dynamically update Windows Setup with Windows Update. Without it, Setup runs with
/DynamicUpdate Disable.
Gate the upgrade with a compatibility scan#
Copy the Upgrade Operating System step, select Perform Windows Setup compatibility scan without starting upgrade (Setup's /Compat ScanOnly) and turn on Continue on error on the Options tab. The task sequence saves Setup's exit code in _SMSTSOSUpgradeActionReturnCode as a decimal string. 3247440400 (0xC1900210) means no compatibility issues were found, so condition the real upgrade step on that value and fail the task sequence with a clear message for any other result. A scan-only deployment to the whole fleet also pre-caches the upgrade content.
Common upgrade errors and where to look#
| Code | Meaning | First check |
|---|---|---|
0xC1900210 | Compatibility scan found no issues (not a failure) | Nothing; let the upgrade run |
0xC1900208 | An incompatible app blocks the upgrade | Search setupact.log for the blocking app; remove or update it |
0xC1900200 / 0xC1900202 | The device doesn't meet the minimum requirements | TPM 2.0, Secure Boot, processor and memory |
0xC1900101-x | Rollback, usually caused by a driver | Update or remove the driver named in setuperr.log; disconnect peripherals |
0xC1900107 | Cleanup from a previous attempt is still pending | Restart, then retry |
0x80070070 | Not enough disk space | Free space on the system drive |
Setup writes setupact.log and setuperr.log to C:\$WINDOWS.~BT\Sources\Panther during the upgrade, to C:\$WINDOWS.~BT\Sources\Rollback after a rollback, and to C:\Windows\Panther after a successful upgrade. Microsoft's SetupDiag tool parses these logs and names the likely cause. For the full list of codes, see the Windows feature update and upgrade error codes quick reference.
Verify#
- On the device: the build and display version match the target release (26100 is 24H2, 26200 is 25H2, 26300 is 26H2):
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').DisplayVersion- In the console: use the Operating System Build property, because Windows 11 reports the same operating system name as Windows 10. A collection query for Windows 11 workstations:
select SMS_R_System.Name, SMS_R_System.Build from SMS_R_System
where SMS_R_System.Build like '10.0.2%'- Deployment status: under Monitoring › Deployments, the feature update or task sequence shows success for the pilot. For task sequences, smsts.log ends without failed actions after the Post-Processing group.
Tips and gotchas#
- The Windows Servicing dashboard counts Windows 11 devices with the latest Windows 10 version, so report on the build number instead.
- Server builds also start with 10.0.2 (Windows Server 2022 and 2025), so limit the query above to workstation collections.
- Feature updates can't run steps before or after Setup. If firmware updates, app removal or custom post-upgrade actions are needed, use the task sequence.
- Drivers: keep model driver packages current; see OSD driver management with driver packages. For update scan and install problems on the feature update path, see updates not installing: WUAHandler.log and UpdatesDeployment.log.
References#
- Support for Windows 11 in Configuration Manager (Microsoft Learn)
- In-place upgrade recommendations (Microsoft Learn)
- Task sequence variable reference (Microsoft Learn)

