就地升级建议

适用于: Configuration Manager(current branch)

Windows 就地升级的默认任务序列模板包括具有在升级过程之前和之后要添加的建议操作的组。 在设备上成功升级 Windows 的许多客户中,这些操作很常见。 本文提供有关升级过程不同阶段的这些建议步骤的信息。

准备升级

如果现有任务序列尚未执行这些操作,请手动将它们添加到 “准备升级” 组中的任务序列。

电池检查

在此组中添加步骤,检查计算机使用的是电池还是有线电源。 此操作需要自定义脚本或实用工具才能运行此检查。

电池检查示例

使用 WbemTest 并连接到 root\cimv2 命名空间。 然后运行以下查询:

Select BatteryStatus From Win32_Battery where BatteryStatus != 2

如果返回任何结果,则设备在电池上运行。 否则,设备将连接到有线电源。

网络/有线连接检查

在此组中添加步骤,检查计算机是否已连接到网络,并且未使用无线连接。 此操作需要自定义脚本或实用工具才能运行此检查。

网络检查示例

使用 WbemTest 并连接到 root\cimv2 命名空间。 然后运行以下查询:

Select * From Win32_NetworkAdapter Where NetConnectionStatus = 2 and PhysicalAdapter = 'True' and NetConnectionID = 'Wi-Fi'

如果返回任何结果,则表示设备在 Wi-Fi 上运行。 否则,设备将连接到有线网络连接。

删除不兼容的应用程序

在此组中添加步骤,以删除与目标版本的 Windows 不兼容的任何应用程序。 卸载应用程序的方法各不相同。

如果应用程序使用 Windows Installer,请从应用程序的 Windows Installer 部署类型属性上的“程序”选项卡上复制“卸载程序”命令行。 然后使用卸载程序命令行在此组中添加 “运行命令行 ”步骤。 例如:

msiexec /x {150031D8-1234-4BA8-9F52-D6E5190D1CBA} /q

删除不兼容的驱动程序

在此组中添加步骤,以删除与目标版本的 Windows 不兼容的任何驱动程序。

删除/挂起第三方安全性

在此组中添加步骤以删除或暂停第三方安全程序,例如防病毒程序。

如果使用的是第三方磁盘加密程序,请使用命令行选项将其加密驱动程序提供给 Windows 安装程序/ReflectDrivers。 将 “设置任务序列变量” 步骤添加到此组中的任务序列。 将任务序列变量设置为 OSDSetupAdditionalUpgradeOptions。 使用驱动程序的路径将值 /ReflectDrivers 设置为 。 此 任务序列变量 追加任务序列使用的 Windows 安装程序命令行。 有关此过程的任何进一步指导,请与软件供应商联系。

下载包内容任务序列步骤

在以下方案中,在升级操作系统步骤之前使用下载包内容步骤:

  • 对 x86 和 x64 平台使用单个升级任务序列。 在“准备升级”组中包括两个“下载包内容”步骤。 在每个步骤上设置条件以检测客户端体系结构。 这种情况导致该步骤仅下载相应的 OS 升级包。 将每个 “下载包内容” 步骤配置为使用相同的变量,并在 “升级操作系统” 步骤中将 变量用于媒体路径。

  • 若要动态下载适用的驱动程序包,请使用包含条件的两个 下载包内容 步骤来检测每个驱动程序包的相应硬件类型。 将每个 下载包内容 步骤配置为使用相同的变量。 然后将该变量用于升级操作系统步骤的驱动程序部分中的暂存内容值。

    注意

    Configuration Manager 向此变量名称添加数字后缀。 例如,如果指定 %mycontent% 为自定义变量,则客户端会将所有引用的内容存储在此位置。 在后续步骤(例如 升级操作系统)中引用变量时,请使用带数字后缀的变量。 在此示例中, %mycontent01%%mycontent02%,其中数字对应于 “下载包内容” 步骤列出此特定内容的顺序。

后处理

创建任务序列后,请在任务序列的 “后期处理 ”组中添加更多步骤。

注意

此任务序列不是线性的。 步骤中有一些条件可能会影响任务序列的结果。 此行为取决于它是成功升级客户端计算机,还是必须将客户端计算机回滚到原始 OS。

Windows 就地升级的默认任务序列模板包括具有升级过程后要添加的建议操作的其他组。 在设备上成功升级 Windows 的许多客户中, “后期处理 ”组中的这些操作很常见。 如果现有任务序列尚未执行这些操作,请手动将它们添加到 “后期处理 ”组中的任务序列。

应用基于设置的驱动程序

在此组中添加步骤以从包 (.exe) 安装基于安装程序的驱动程序。

安装/启用第三方安全性

在此组中添加步骤以安装或启用第三方安全程序,例如防病毒。

设置 Windows 默认应用和关联

在此组中添加步骤以设置 Windows 默认应用和文件关联。

  1. 准备具有所需应用关联的引用计算机。

  2. 运行以下命令行进行导出:

    dism /online /Export-DefaultAppAssociations:"%UserProfile%\Desktop\DefaultAppAssociations.xml"

  3. 将 XML 文件添加到包。

  4. 在此组中添加 “运行命令行” 步骤。 指定包含 XML 文件的包,然后指定以下命令行:

    dism /online /Import-DefaultAppAssociations:DefaultAppAssociations.xml

有关详细信息,请参阅 导出或导入默认应用程序关联

应用自定义和个性化

在此组中添加步骤以应用“开始”菜单自定义项,例如组织程序组。 有关详细信息,请参阅 自定义“开始”菜单布局

反转

如果计算机重启后升级过程出现问题,Windows 安装程序会将系统回滚到以前的操作系统。 然后,任务序列继续执行 回滚 组中的任何步骤。 创建任务序列后,请根据需要在此组中添加可选步骤。 例如,撤消对“准备升级”组中系统所做的任何更改,例如卸载不兼容的软件。

失败时运行操作

Windows 就地升级的默认任务序列模板包括一个组,用于 在失败时运行操作。 此组包括建议的操作,以在升级过程失败时添加。 通过这些操作,可以更轻松地进行故障排除。

收集日志

若要从客户端收集日志,请在此组中添加步骤。

运行诊断工具

若要运行诊断工具,请在此组中添加步骤。 自动执行这些工具,以便在发生故障后立即从系统收集其他信息。

其中一个工具是 Windows SetupDiag。 它是一个独立的诊断工具,用于获取有关 Windows 升级失败的原因的详细信息。

  • 在 Configuration Manager 中, 为该工具创建包

  • “运行命令行” 步骤添加到任务序列的此组。 使用 “包” 选项引用该工具。 以下字符串 是命令行示例SetupDiag.exe /Output:"%_SMSTSLogPath%\SetupDiagResults.log"

提示

始终使用最新版本的 SetupDiag 获取最新功能和已知问题的修复。 有关详细信息,请参阅 SetupDiag

其他建议

Windows 文档

查看 Windows 文档以解决 Windows 客户端升级错误。 本文还包括有关升级过程的详细信息。

检查最小磁盘空间

在默认的 “检查就绪情况 ”步骤中, 启用“确保最小可用磁盘空间 (MB) 。 对于 32 位 OS 升级包,请将值设置为至少 16384 (16 GB) ,对于 64 位,请将该值设置为 20 (20 GB) 。

重试下载策略

使用 SMSTSDownloadRetryCount任务序列变量 重试下载策略。 目前,客户端默认重试两次;此变量设置为两 (2) 。 如果客户端不在有线 Intranet 网络连接上,则更多重试有助于客户端获取策略。 使用此变量不会造成负面影响,如果无法下载策略,则不会造成延迟失败。 此外,将 SMSTSDownloadRetryDelay 变量从默认的 15 秒增加。

执行内联兼容性评估

  1. “准备升级”组中提前添加第二个升级操作系统步骤。

    1. 将其命名 为升级评估

    2. 指定同一升级包,然后启用“ 在不开始升级的情况下执行 Windows 安装程序兼容性扫描”选项。

    3. 在“选项”选项卡上启用“ 出错时继续 ”。

  2. 立即在此 升级评估 步骤之后,添加 “运行命令行” 步骤。 指定以下命令行:

    cmd /c exit %_SMSTSOSUpgradeActionReturnCode%

    此命令会导致命令提示符使用指定的非零退出代码退出,任务序列认为该代码失败。

  3. 在“ 选项 ”选项卡上,添加以下条件:

    Task Sequence Variable _SMSTSOSUpgradeActionReturnCode not equals 3247440400

    此条件意味着任务序列仅在返回代码不是成功代码时运行此 运行命令行 步骤。

返回代码 3247440400 是 MOSETUP_E_COMPAT_SCANONLY (0xC1900210) 的十进制等效项,这是一次成功的兼容性扫描,没有问题。 如果 升级评估 步骤成功并返回 3247440400,任务序列将跳过此 运行命令行 步骤,并继续。 如果评估步骤返回任何其他返回代码,则 运行此运行命令行 步骤。 由于命令以非零返回代码退出,因此任务序列也会失败。 任务序列日志和状态消息包括来自 Windows 安装程序兼容性扫描的返回代码。 有关 _SMSTSOSUpgradeActionReturnCode的详细信息,请参阅 任务序列变量

有关详细信息,请参阅 升级操作系统 任务序列步骤。

从 BIOS 转换为 UEFI

如果要在此任务序列期间将设备从 BIOS 更改为 UEFI,请参阅 就地升级期间从 BIOS 转换为 UEFI

管理 BitLocker

如果你使用的是 BitLocker 磁盘加密,则默认情况下,Windows 安装程序会在升级期间自动挂起它。 Windows 安装程序包括 /BitLocker 用于控制此行为的命令行参数。 如果安全要求需要设备始终具有活动磁盘加密,请使用“准备升级”组中的 OSDSetupAdditionalUpgradeOptions任务序列变量来包括 /BitLocker TryKeepActive。 有关详细信息,请参阅 Windows 安装程序命令行选项

删除默认应用

某些客户删除 Windows 中默认预配的应用。 例如,必应天气应用或Microsoft纸牌集合。 在某些情况下,这些应用在升级 Windows 后会返回。 有关详细信息,请参阅 如何在更新期间防止从 Windows 客户端删除的应用返回

“运行命令行 ”步骤添加到 “准备升级” 组中的任务序列。 指定类似于以下示例的命令行:

cmd /c reg add "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deprovisioned\Microsoft.BingWeather_8wekyb3d8bbwe" /f

后续步骤

有关详细信息,请参阅以下文章: