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.
Do these commands work in Vista, 7 and 8.x to ?
Very interesting, thanks a lot !
Interesting, I wasn’t aware of these. They could add a “/purge Nvidia_[registry] [files]” command to remove the million or so entries and files any Nvidia driver leaves behind after uninstall!