使用Setup.exe命令行开关升级Windows 10 Build

时间:2020-01-09 10:46:58  来源:igfitidea点击:

Windows 10安装镜像中的" setup.exe"安装程序具有大量的命令行参数,管理员可能会对使用SCCM,MDT,或者其他部署工具。本文很好地展示了在兼容性检查和升级到最新Windows 10版本时如何使用Windows 10 setup.exe参数。

Windows 10 Setup.exe命令行选项

要升级Windows 10版本,请使用Windows安装程序" setup.exe"。运行它时,将出现一个图形化的Windows 10更新向导。但是,此程序具有大量命令行参数,可用于在用户计算机上自动进行OS升级。下面列出了Setup.exe的常规语法和参数:

/1394Debug:<channel>
[BaudRate:<baudrate>]
/AddBootMgrLast
/Auto {Clean | DataOnly | Upgrade}
/BitLocker {AlwaysSuspend | TryKeepActive | ForceKeepActive}
/BusParams:<bus.device.function>
/CompactOS {Enable/Disable}
/Compat {IgnoreWarning/ScanOnly}
/CopyLogs<location>
/Debug:<port> [BaudRate:<baudrate>]
/DiagnosticPrompt {enable | disable}
/DynamicUpdate {enable | disable}
/EMSPort: {COM1 | COM2 | off} [/emsbaudrate:<baudrate>]
/InstallDrivers<location>
/InstallFrom<path>
/InstallLangPacks<location>
/m:<folder_name>
/MigNEO Disable
/MigrateDrivers {all | none}
/NetDebug:hostip=<w.x.y.z>,port=<n>,key= <q.r.s.t>[,nodhcp][,busparams=n.o.p]
/NoReboot
/PKey<product key>
/Priority Normal
/PostOOBE<location> [\setupcomplete.cmd]
/PostRollback<location> [\setuprollback.cmd] [/postrollbackcontext {system/user}]
/Quiet
/ReflectDrivers<location>
/ResizeRecoveryPartition {Enable/Disable}
/ShowOOBE {full/none}
/Telemetry {Enable/Disable}
/TempDrive <drive_letter>
/Unattend:<answer_file>
/Uninstall {enable/disable}
/USBDebug:<hostname>
/WDSDiscover
/WDSServer:<servername>

我们可以在文档页面上获取有关Windows 10的所有setup.exe命令行选项及其功能的详细信息:https://docs.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/windows-设置命令行选项

如何创建最新的Windows 10安装ISO镜像?

要升级Windows 10版本,我们必须获得具有最新Windows 10版本的安装ISO镜像。今天是Windows 10 2004(2017年5月更新)。

我们可以使用"媒体创建工具"使用当前的Windows 10版本创建ISO镜像。

  • 下载"媒体创建工具"(https://www.microsoft.com/zh-cn/software-download/windows10);
  • 运行MediaCreationTool2004.exe并在向导中指定要创建安装媒体(USB闪存驱动器,DVD或者ISO文件)。
  • 选择要创建的Windows 10镜像的语言,版本和体系结构;
  • 检查" ISO文件"并为其输入文件名;
  • 等待Media Creation Tool将Windows 10安装镜像下载到本地驱动器。

将ISO镜像的内容提取到文件服务器。

在升级版本之前使用Windows 10兼容性检查

在计算机上升级操作系统之前,我们可以检查Windows 10是否可以升级到新ISO镜像所包含的版本。为此,请运行以下命令:

start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly

我们可以使用的参数:

  • / Auto Upgrade自动升级模式
  • / Quiet隐藏升级向导对话框窗口
    -/NoReboot禁用计算机重启
  • / DynamicUpdate Disable设置不需要通过Windows Update下载最新更新(我们可以稍后使用wuauserv或者手动自动下载)
  • "/Compat ScanOnly"仅执行兼容性检查(不执行构建升级)。

扫描与新的Windows 10版本的兼容性将需要一些时间。

我们可以在文件C:$Windows。~BT\Sources\Panther\setupact.log中跟踪兼容性检查过程。如果扫描检查结束,我们将其中看到以下行:

Info MOUPG  SetupHost Logging End 

我们可以在C:$Windows。~BT\Sources\Panther\setuperr.log中查看兼容性分析结果。找到看起来像这样的最后一行:

CSetupHost::Execute(xxx): Result = xxxxxxxx

这是检查结果代码。

我们还可以在命令提示符下获取升级兼容性检查的错误代码:

echo %errorlevel%

扫描结果代码必须转换为十六进制格式。我们可以获取有关为什么无法使用setupdiag.exe工具升级Windows 10版本的详细信息。

例如,setup.exe命令已返回-1047526896. 在程序员模式下,将十进制代码复制并粘贴到计算器中。要获取十六进制错误代码,请从"十六进制"框中复制该值,删除开头的所有" F",然后添加" 0x"。就我而言,我得到的是" 0xC1900210"。

最典型的Windows 10兼容性检查错误代码为:

  • 0xC1900210未发现问题;
  • 0xC1900208发现兼容性问题;
  • 0xC1900204和0xC190010E无法自动升级构建(Windows版本或者体系结构错误);
  • 0xC1900200计算机不满足最低Windows 10硬件要求;
  • 0xC190020E磁盘空间不足;
  • 0xC1420127卸载镜像WIM文件时出现问题。

// Auto:Upgrade 模式会在升级后保留所有应用程序和用户数据。如果只想保留用户数据,也可以使用/ auto:data模式。

就我而言,setuperr.log中存在以下错误:

Error MOUPG CSetupHost::Execute(412): Result = 0xC1900208[gle=0x00000003]

检查SetupDiag创建的SetupDiagResults.log。日志显示,有两个原因阻止我的计算机升级Windows 10版本:

  • CompatBlockedApplicationAutoUninstall发现一个不兼容的应用程序,我必须在升级之前将其卸载。
  • FindAbruptDownlevelFailure有关在将条目写入日志时突然中断的上一个错误的信息。
Matching Profile found: CompatBlockedApplicationAutoUninstall, FindAbruptDownlevelFailure - BEBA5BC6-6150-413E-8ACE-5E1EC8D34DD5, 55882B1A-DA3E-408A-9076-23B22A0472BD

SetupDiag version: 1.6.0.0

最后,建议我们在升级之前先卸载McAfee防病毒软件:

You must uninstall "McAfee VirusScan Enterprise" before continuing with the installation/update.

如果我们有SCCM,则可以使用以下命令通过简单的软件包和AD从用户计算机集中收集错误级别状态的值:

setup.exe /Compat ScanOnly

如何从命令提示符自动执行Windows 10就地升级?

如果未发现任何阻止Windows 10内部版本升级的兼容性问题,则可以使用简单的命令行脚本在计算机上运行升级。在包含提取的Windows 10 ISO镜像的共享网络共享中,使用以下代码创建BAT文件run_win10_upgrade.bat

start /wait .\ W102004\Windows10x64-2004\setup.exe /auto upgrade /DynamicUpdate disable /showoobe None /Telemetry Disable

/ migratedrivers all参数用于强制迁移所有驱动程序。如果未设置该参数,则安装程序将自行对每个驱动程序做出决定。

升级Windows 10时,可以使用其他setup.exe选项。

从Windows 10 1607开始,我们可以在Setupconfig.ini文件中设置安装参数。该文件必须放在setup.exe文件夹中,并包含与上面的命令匹配的文本,如下所示:

[SetupConfig]
NoReboot
ShowOobe=None
Telemetry=Disable
DynamicUpdate=Disable

要使用参数文件运行Windows 10升级,请使用以下命令:

Setup.exe /ConfigFile setupconfig.ini