Windows 10 Setup Command Options

Windows 10 comes with a set of command line options to control the setup of the operating system. While most Home users probably execute setup without supplying any command line options to customize setup, administrators use these to customize the installation.
While the bulk of supported commands is only useful for Enterprise or organizational use, some options may be useful in home environments as well.
While home users may not need most of the commands, some, such as disabling Telemetry, installing extra drivers, loading third-party encryption drivers, and more, can certainly be useful in a home context.
Windows 10 administrators may run the commands from the command line or use setup automation capabilities that Microsoft introduced in Windows 10 version 1607.
Important Windows 10 Setup commands
/BitLocker {AlwaysSuspend | TryKeepActive | ForceKeepActive}
The command determines the status of BitLocker drive encryption during upgrades.
- AlwaysSuspend -- BitLocker is suspended during updates. The default behavior.
- TryKeepActive -- Upgrade is tried without suspending BitLocker. If that fails, BitLocker will be suspended and the upgrade will be installed.
- ForceKeepActive -- Upgrade won't suspend BitLocker. Upgrade will fail if it can't complete.
/CompactOS {Enable / Disable}
The command determines whether Windows' Compact OS functionality will be used to reduce the hard drive space requirement of the system. Windows decides automatically whether the feature is used by default.
- Enable -- Setup will use compressed system files where appropriate to save disk space.
- Disable -- Setup will use uncompressed system files.
/Compat {IgnoreWarning / ScanOnly}
The command defines whether setup should ignore compatibility warnings.
- IgnoreWarning -- Setup will complete the installation or upgrade and ignores any compatibility issues.
- ScanOnly -- Runs all compatibility scans and returns an exit code that highlights whether compatibility issues have been found.
/DynamicUpdate {enable | disable}
The command determines whether Windows Setup will search for, download, and install updates during setup.
/InstallDrivers<location>
Select a location that contains .inf drivers to install these drivers on the system during setup.
/MigrateDrivers {all | none}
Option to migrate all drivers or no drivers. The default that setup uses is to select the best course of action for each driver individually.
/Quiet
Suppress user setup experience.
/ReflectDrivers<location>
Only available in Windows 10 version 1607 or newer. Specify encryption drivers if third-party encryption software is used.
/ResizeRecoveryPartition {Enable / Disable}
Define whether Windows Setup may resize the Recovery Partition during setup or create a new one, or not.
/Telemetry {Enable / Disable}
Select whether Telemetry collecting during setup is enabled or not.
All other Windows 10 Setup commands
/1394Debug:<channel> [BaudRate:<baudrate>]
The command enables kernel debugging during the configuration pass of Windows Setup.
- <channel> -- specifies debugging channel. Default is 1.
- [BaudRate:<baudrate>] -- specifies the transfer baud during debugging. Default is 19200, can also be set to 57600 or 115200.
/AddBootMgrLast
The option is only available on devices that support Windows PE 4.0 or later. Commands Windows Setup to add the Windows Boot Manager as the last entry in the UEFI firmware boot order.
/Auto {Clean | DataOnly | Upgrade}
An automated upgrade to Windows 10 volume license editions is performed.
- Clean -- clean install of windows.
- DataOnly -- saves user data but not apps during upgrade.
- Upgrade -- saves user data and applications.
/BusParams:<bus.device.function>
Specifies the address of a 1394, USB or NET debug port. Must be in decimal format.
/CopyLogs<location>
Windows Setup will copy logs to the selected location upon failure. Accepts local file paths and UNC network paths.
/Debug:<port> [BaudRate:<baudrate>]
Enables debugging over a COM port.
- <port> -- specifies the debug port. Default is 1.
- [BaudRate:<baudrate>] -- specifies the baud rate.
/DiagnosticPrompt {enable | disable}
Use this command to enable or disable the command prompt during setup. If enabled, Command Prompt can be launched using Shift-F10.
/EMSPort: {COM1 | COM2 | off | usebiossettings} [/emsbaudrate:<baudrate>]
Configures Emergency Management Services during setup.
- Com1 | Com2 | Off |Â usebiossettings -- Enables EMS over COM1 or COM2, turns it off, or uses Bios settings.
- [/emsbaudrate:<baudrate>] -- sets the baudrate.
/InstallFrom<path>
Select a different install.wim file that needs to be stored under the selected path.
This enables you to use a single preinstallation environment to install multiple versions of Windows images.
/InstallLangPacks<location>
Install additional language packs during setup.
m:<*folder_name*>
Copy files from an alternative location. Setup will use files in the selected location first if available and resorts to the default location if files are not available.
/MigNEO Disable
Only available on Windows 10 version 1803 and later. Disable offline phase optimizations.
/NetDebug:hostip=<w.x.y.z>,port=<n>,key= <q.r.s.t>[,nodhcp][,busparams=n.o.p]
Enables kernel debugging over the network.
- hostip -- IP address of host computer
- port -- port for operation.
- key -- password for setting up a secure connection.
- nohdcp -- disable DHCP.
- busparams -- select bus number, device number, and function number of an adapter.
/NoReboot
Use the command to prevent the automatic reboot after the down-level phase of setup.
/PKey<product key>
Supply the product key during setup.
/Priority Normal
Only available in Windows 10 version 1709 and newer. Increase thread priority from low to high for feature updates.
/PostOOBE<location> [\setupcomplete.cmd]
Run a script after setup completes.
/PostRollback<location> [\setuprollback.cmd] [/postrollbackcontext {system / user}]
Run a script if the feature update fails or if the user decides to roll back the update.
/ShowOOBE {full / none}
Defines whether the Out Of Box Experience is displayed and needs to be completed by users or if it is skipped.
/TempDrive <drive_letter>
Instructs Windows Setup to use a specific drive for temporary files during setup.
/Unattend:<answer_file>
Use an answer file for unattended setup.
/Uninstall {enable / disable}
Define whether users will have the option to roll back upgrades.
/USBDebug:<hostname>
Sets up an USB debugging port.
/WDSDiscover
Sets the Windows Deployment Services client to discover mode.
/WDSServer:<servername>
Specifies the Windows Deployment Services server the client should connect to.
Setup.exe error codes
There are exit codes for Setup.exe that provide you with information:
Exit code name: CONX_SETUP_EXITCODE_CONTINUE_REBOOT
- Exit code: 0x3
- Description: upgrade was successful
Exit code name: CONX_SETUP_EXITCODE_RESUME_AT_COMPAT_REPORT
- Exit code: 0x5
- Description: compatibility check detected issues that need to be resolved before the upgrade can proceed.
Exit code name: CONX_SETUP_EXITCODE_AUTO_INSTALL_FAIL
- Exit code: 0x7
- Installation option was not available.
You find additional information about parameters and commands on Microsoft's Docs website.


What mental age of reader are you targeting with the first sentence? 10?
Why not write an article on how to *avoid* upgrading from W10 to W11. Analogous to those like me who avoided upgrading from 7 to 10 for as long as possible.
If your paymaster Microsoft permits it, of course.
5. Rufus
6. Ventoy
PS. I hate reading these “SEO optimized” articles.
I used Rufus to create an installer for a 6th gen intel i5 that had MBR. It upgraded using Setup. No issues except for Win 11 always prompting me to replace my local account. Still using Win 10 Pro on all my other PCs to avoid the bullying.
bit pointless to upgrade for the sake of upgrading as you never know when you’ll get locked out because ms might suddenly not provide updates to unsupported systems.
ps…. time travelling?
written. Jan 15, 2023
Updated • Jan 13, 2023
This happens when you schedule a post in WordPress and update it before setting the publication date.
Anyone willing to downgrade to this awful OS must like inflicting themselves with harm.
I have become convinced now that anybody who has no qualms with using Windows 11/10 must fit into one of the following brackets:
1) Too young to remember a time before W10 and W11 (doesn’t know better)
2) Wants to play the latest games on their PC above anything else (or deeply needs some software which already dropped W7 support)
3) Doesn’t know too much about how computers work, worried that they’d be absolutely lost and in trouble without the “”latest security””
4) Microsoft apologist that tries to justify that the latest “features” and “changes” are actually a good thing, that improve Windows
5) Uses their computer to do a bare minimum of like 3 different things, browse web, check emails, etc, so really doesn’t fuss
Obviously that doesn’t cover everyone, there’s also the category that:
6) Actually liked W7 more than 10, and held out as long as possible before switching, begrudgingly uses 10 now
Have I missed any group off this list?
You have missed in this group just about any professional user that uses business software like CAD programs or ERP Programs which are 99% of all professional users from this list.
Linux doesn’t help anyone who is not a linux kid and apple is just a fancy facebook machine.
Microsoft has removed KB5029351 update
only from windows update though
KB5029351 is still available from the ms update catalog site
1. This update is labaled as PREVIEW if it causes issues to unintelligent people, then they shouldn’t have allowed Preview updates ot install.
2. I have installed it in a 11 years old computer, and no problems at all.
3. Making a big drama over a bluescreen for an updated labeled as preview is ridiculous.
This is probably another BS internet drama where people ran programs and scripts that modified the registry until they broke Windows, just for removing stuff that they weren’t even using just for the sake of it.
Maybe people should stop playing geeks and actually either use Windows 10 or Windows 11, but don’t try to modify things just for the sake of it.
Sometimes removing or stopping things (like defender is a perfect example) only need intelligence, not scripts or 3rd party programs that might mess with windows.
Windows 11 was a pointless release, it was just created because some of the Windows team wanted to boost sales with some sort of new and improved Windows 10. Instead, Microsoft cannot support one version well let alone two.
Windows 11 is the worst ugly shame by Microsoft ever. They should release with every new W11 version a complete free version of Starallback inside just to make this sh** OS functionally again.
motherboard maker MSI has recently released a statement regarding the “unsupported processor” blue screen error for their boards using Intel 600/700 series chipsets & to avoid the KB5029351 Win11 update:
https://www.msi.com/news/detail/MSI-On–UNSUPPORTED-PROCESSOR–Error-Message-of-Windows-11-Update-KB5029351-Preview-142215
check out the following recent articles:
Neowin – Microsoft puts little blame on its Windows update after UNSUPPORTED PROCESSOR BSOD bug:
https://www.neowin.net/news/microsoft-puts-little-blame-on-its-windows-update-after-unsupported-processor-bsod-bug/
BleepingComputer – Microsoft blames ‘unsupported processor’ blue screens on OEM vendors:
https://www.bleepingcomputer.com/news/microsoft/microsoft-blames-unsupported-processor-blue-screens-on-oem-vendors/
While there may be changes or updates to the Windows 10 Store for Business and Education in the future, it is premature to conclude that it will be discontinued based solely on rumors.
My advice, I left win 15 years ago. Now I’m a happy linux user (linuxmint) but there is Centos, Fedora, Ubuntu depending on your needs.
motherboard maker MSI has recently released new BIOS/firmware updates for their Intel 600 & 700 series motherboards to fix the “UNSUPPORTED_PROCESSOR” problem (Sept. 6):
https://www.msi.com/news/detail/Updated-BIOS-fixes-Error-Message–UNSUPPORTED-PROCESSOR–caused-BSOD-on-MSI-s-Intel-700-and-600-Series-Motherboards-142277
I try to disable the Diagnostics Tracking Service (Connected Devices Platform User Services) but it wont let me disable it, any help will be greatly appreciated.
Tank you for your help