本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
WorkSpaces 在 WorkSpaces 个人版中升级 Windows BYOL
在 Windows 自带许可证 (BYOL) 上 WorkSpaces,你可以使用就地升级过程升级到较新版本的 Windows。为此,请按照本主题中的说明操作。
就地升级过程仅适用于 Windows 10 和 11 BY WorkSpaces OL。
重要
不要在升级后的版本上运行 Sysprep。 WorkSpace如果这样做,可能会发生阻止 Sysprep 完成的错误。如果您计划运行 Sysprep,请仅在尚未升级的上执行 WorkSpace 此操作。
先决条件
-
如果您使用组策略或系统中心配置管理器 (SCCM) 推迟或暂停 Windows 10 和 11 升级,请为 Windows 10 和 11 启用操作系统升级。 WorkSpaces
-
如果 WorkSpace 是 AutoStop WorkSpace,则将其更改为就地升级过程 AlwaysOn WorkSpace之前的,这样在应用更新时它就不会自动停止。有关更多信息,请参阅 修改运行模式。如果您希望将 WorkSpace 设置保留为 AutoStop,请在升级进行 AutoStop 时将时间更改为三小时或更长时间。
-
就地升级过程通过制作名为 Default User (
C:\Users\Default
) 的特殊配置文件的副本来重新创建用户配置文件。请勿使用此默认用户配置文件进行自定义。而是建议通过组策略对象 (GPO) 对用户配置文件进行任何自定义。通过 GPO 进行的自定义设置可以很容易地进行修改或回滚,并且不易出错。 -
就地升级过程只能备份和重新创建一个用户配置文件。如果您在驱动器 D 上有多个用户配置文件,请删除除所需配置文件之外的所有用户配置文件。
注意事项
就地升级过程使用两个注册表脚本(enable-inplace-upgrade.ps1
和update-pvdrivers.ps1
)对您的注册表脚本进行必要的更改 WorkSpaces ,从而使 Windows 更新进程能够运行。这些更改涉及在驱动器 C 而不是驱动器 D 上创建(临时)用户配置文件。如果驱动器 D 上已存在用户配置文件,则该原始用户配置文件中的数据保留在驱动器 D 上。
默认情况下,在中 WorkSpaces 创建用户配置文件D:\Users\%USERNAME%
。enable-inplace-upgrade.ps1
脚本会将 Windows 配置为在 C:\Users\%USERNAME%
中创建新的用户配置文件,并将用户 Shell 文件夹重定向到 D:\Users\%USERNAME%
。这个新的用户配置文件是在用户首次登录时创建的。
就地升级后,您可以选择将用户配置文件保留在驱动器 C 上,以允许用户在将来使用 Windows 更新进程升级其计算机。但是,请注意 WorkSpaces ,如果配置文件存储在驱动器 C 上,则无法在不丢失用户配置文件中的所有数据的情况下重建或迁移,除非您自己备份和恢复这些数据。如果您决定将配置文件保留在驱动器 C 上,则可以使用UserShellFoldersRedirection注册表项将用户 shell 文件夹重定向到驱动器 D,如本主题后面所述。
为确保您可以重建或迁移您的 shell, WorkSpaces 并避免用户 shell 文件夹重定向出现任何潜在问题,我们建议您在就地升级后选择将用户配置文件还原到驱动器 D。您可以使用 PostUpgradeRestoreProfileOnD 注册表项来执行此操作,如本主题后面所述。
已知限制条件
-
在 WorkSpace 重建或迁移过程中,用户配置文件位置不会从驱动器 D 更改为驱动器 C。如果您在 Windows 10 或 11 BYOL 上执行就地升级, WorkSpace 然后对其进行重建或迁移,则新版本 WorkSpace 将在驱动器 D 上保存用户配置文件。
警告
如果在就地升级后将用户配置文件保留在驱动器 C 上,则在重建或迁移过程中存储在驱动器 C 上的用户配置文件数据将丢失,除非您在重建或迁移之前手动备份用户配置文件数据,并在运行重建或迁移过程后手动还原用户配置文件数据。
-
如果您的默认 BYOL 包包含基于 Windows 10 和 11 早期版本的映像,则必须在重建或迁移后再次执行就 WorkSpace 地升级。
注册表项设置摘要
要启用就地升级过程并指定您要在升级后放置用户配置文件的位置,您必须设置多个注册表项。
注册表项 | 类型 | 值 |
---|---|---|
Enabled (已启用) | DWORD |
0 –(默认值)禁用就地升级 1 – 启用就地升级 |
PostUpgradeRestoreProfileOnD | DWORD |
0 –(默认值)在就地升级后,不尝试还原用户配置文件路径 1-就地升级后恢复用户配置文件路径 (ProfileImagePath) |
UserShellFoldersRedirection | DWORD |
0 – 不对用户 Shell 文件夹进行重定向 1 –(默认值)在用户配置文件在 |
NoReboot | DWORD |
0 –(默认值)允许您控制在修改用户配置文件的注册表后何时重启 1 — 不允许脚本 WorkSpace 在修改用户配置文件的注册表后重新启动 |
注册表项 | 类型 | 值 |
---|---|---|
Enabled (已启用) | DWORD |
0 —(默认)禁用 Amazon PV 驱动程序更新 1 — 启用 Amazon PV 驱动程序更新 |
执行就地升级
要在 BYOL 上启用就地升级 Windows WorkSpaces,必须设置某些注册表项,如以下过程所述。您还必须设置某些注册表项,以指示您希望在完成就地升级后在其中放置用户配置文件的驱动器(C 或 D)。
您可以手动进行这些注册表更改。如果您有多个 WorkSpaces 要更新,则可以使用组策略或 SCCM 来推送脚本。 PowerShell 有关示例 PowerShell脚本,请参阅使用 PowerShell 脚本更新您的 WorkSpace 注册表。
执行 Windows 10 和 11 的就地升级
-
记下你正在更新的 Windows 10 和 11 BYOL WorkSpaces 上当前运行的是哪个版本的 Windows,然后重新启动它们。
-
更新以下 Windows 系统注册表项,将 Enabled (启用) 的数值数据从 0 更改为 1。这些注册表更改允许就地升级。 WorkSpace
-
HKEY_LOCAL_MACHINE\ SOFTWARE\ 亚马逊\\ .ps1 WorkSpacesConfig enable-inplace-upgrade
-
HKEY_LOCAL_MACHINE\ SOFTWARE\ 亚马逊\\ update-pvdrivers.ps1 WorkSpacesConfig
注意
如果这些密钥不存在,请重新启动 WorkSpace。重新启动系统时,应该会添加这些键。
(可选)如果您使用诸如 SCCM 任务序列之类的托管工作流来执行升级,请将以下键值设置为 1 以防止计算机重新启动:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Amazon\\ .ps1\ WorkSpacesConfig enable-inplace-upgrade NoReboot
-
-
决定您希望在就地升级过程后将用户配置文件放在哪个驱动器上(有关详细信息,请参阅注意事项),并按以下方式设置注册表项:
-
如果您希望在升级后用户配置文件位于驱动器 C 上,请设置:
HKEY_LOCAL_MACHINE\ SOFTWARE\ 亚马逊\\ .ps1 WorkSpacesConfig enable-inplace-upgrade
密钥名称:PostUpgradeRestoreProfileOnD
键值:0
密钥名称:UserShellFoldersRedirection
键值:1
-
如果您希望在升级后用户配置文件位于驱动器 D 上,请设置:
HKEY_LOCAL_MACHINE\ SOFTWARE\ 亚马逊\\ .ps1 WorkSpacesConfig enable-inplace-upgrade
密钥名称:PostUpgradeRestoreProfileOnD
键值:1
密钥名称:UserShellFoldersRedirection
键值:0
-
-
将更改保存到注册表后, WorkSpace 再次重新启动以应用更改。
注意
-
重新启动后,登录到会 WorkSpace 创建新的用户配置文件。您可能会在开始菜单中看到占位符图标。此问题在就地升级完成后会自动解决。
-
等待 10 分钟以确保畅通 WorkSpace 无阻。
(可选)确认将以下密钥值设置为 1,这将解除 WorkSpace 对更新的阻止:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Amazon\\ .ps1\ 已删除 WorkSpacesConfig enable-inplace-upgrade profileImagePath
-
-
执行就地升级。您可以使用任何您喜欢的方法,例如 SCCM、ISO 或 Windows Update (WU)。根据你最初的 Windows 10 和 11 版本以及安装了多少应用程序,此过程可能需要 40 到 120 分钟。
注意
就地升级过程可能至少需要一个小时。 WorkSpace 实例状态可能显示为升级
UNHEALTHY
期间。 -
更新过程结束后,请确认 Windows 版本已更新。
注意
如果就地升级失败,Windows 会自动回滚以使用你开始升级之前使用的 Windows 10 和 11 版本。有关疑难解答的更多信息,请参阅 Microsoft 文档
。 (可选)要确认更新脚本已成功执行,请验证以下键值是否设置为 1:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Amazon\\ .ps1\ WorkSpacesConfig enable-inplace-upgrade scriptExecutionComplete
-
如果您 WorkSpace 通过将运行模式设置为 AlwaysOn 或更改 AutoStop 时间段来修改运行模式,以便就地升级过程可以不间断地运行,请将运行模式重新设置为原始设置。有关更多信息,请参阅 修改运行模式。
如果您尚未将 PostUpgradeRestoreProfileOnD 注册表项设置为 1,则用户配置文件将由 Windows 重新生成并在就地升级C:\Users\%USERNAME%
后放入,这样将来的 Windows 10 和 11 就地升级就不必再次执行上述步骤。默认情况下,enable-inplace-upgrade.ps1
脚本将以下 Shell 文件夹重定向到驱动器 D:
-
D:\Users\%USERNAME%\Downloads
-
D:\Users\%USERNAME%\Desktop
-
D:\Users\%USERNAME%\Favorites
-
D:\Users\%USERNAME%\Music
-
D:\Users\%USERNAME%\Pictures
-
D:\Users\%USERNAME%\Videos
-
D:\Users\%USERNAME%\Documents
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Network Shortcuts
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Recent
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\SendTo
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
-
D:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Templates
如果您将 shell 文件夹重定向到您的其他位置 WorkSpaces,请在就地升级 WorkSpaces 之后对执行必要的操作。
故障排除
如果您在更新过程中遇到任何问题,可以查看以下各项以帮助排除故障:
-
Windows 日志,默认情况下位于以下位置:
C:\Program Files\Amazon\WorkSpacesConfig\Logs\
C:\Program Files\Amazon\WorkSpacesConfig\Logs\TRANSMITTED
-
Windows 事件查看器
Windows 日志 > 应用程序 > 来源:亚马逊 WorkSpaces
提示
在就地升级过程中,如果您看到桌面上的某些图标快捷方式不再起作用,那是因为 WorkSpaces 将驱动器 D 上的所有用户配置文件移至驱动器 C 以准备升级。升级完成后,快捷方式将正常工作。
使用 PowerShell 脚本更新您的 WorkSpace 注册表
您可以使用以下示例 PowerShell 脚本更新您的注册表 WorkSpaces 以启用就地升级。请按照执行就地升级,但使用此脚本更新每个注册表 WorkSpace。
# AWS WorkSpaces 1.28.20 # Enable In-Place Update Sample Scripts # These registry keys and values will enable scripts to run on the next reboot of the WorkSpace. $scriptlist = ("update-pvdrivers.ps1","enable-inplace-upgrade.ps1") $wsConfigRegistryRoot="HKLM:\Software\Amazon\WorkSpacesConfig" $Enabled = 1 $script:ErrorActionPreference = "Stop" foreach ($scriptName in $scriptlist) { $scriptRegKey = "$wsConfigRegistryRoot\$scriptName" try { if (-not(Test-Path $scriptRegKey)) { Write-Host "Registry key not found. Creating registry key '$scriptRegKey' with 'Update' enabled." New-Item -Path $wsConfigRegistryRoot -Name $scriptName | Out-Null New-ItemProperty -Path $scriptRegKey -Name Enabled -PropertyType DWord -Value $Enabled | Out-Null Write-Host "Value created. '$scriptRegKey' Enabled='$((Get-ItemProperty -Path $scriptRegKey).Enabled)'" } else { Write-Host "Registry key is already present with value '$scriptRegKey' Enabled='$((Get-ItemProperty -Path $scriptRegKey).Enabled)'" if((Get-ItemProperty -Path $scriptRegKey).Enabled -ne $Enabled) { Set-ItemProperty -Path $scriptRegKey -Name Enabled -Value $Enabled Write-Host "Value updated. '$scriptRegKey' Enabled='$((Get-ItemProperty -Path $scriptRegKey).Enabled)'" } } } catch { write-host "Stopping script, the following error was encountered:" `r`n$_ -ForegroundColor Red break } }