本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
升级 WorkSpaces 个人版中的 Windows BYOL WorkSpaces
在您的 Windows 自带许可 (BYOL) WorkSpaces 上,可以使用就地升级过程升级到 Windows 的较新版本。为此,请按照本主题中的说明操作。
就地升级过程仅适用于 Windows 10 和 11 BYOL WorkSpaces。
重要
不要在升级过的 WorkSpace 上运行 Sysprep。如果这样做,可能会发生阻止 Sysprep 完成的错误。如果您计划运行 Sysprep,请仅在没有升级过的 WorkSpace 上进行。
注意
您可以使用此过程将 Windows 10 和 11 WorkSpaces 升级到较新的版本。但是,此过程不能用于将您的 Windows 10 WorkSpaces 升级到 Windows 11。
前提条件
-
如果您通过使用组策略或 System Center Configuration Manager(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
)对您的 WorkSpace 进行必要的更改,以使 Windows 更新进程能够运行。这些更改涉及在驱动器 C 而不是驱动器 D 上创建(临时)用户配置文件。如果驱动器 D 上已存在用户配置文件,则该原始用户配置文件中的数据保留在驱动器 D 上。
默认情况下,WorkSpace 会在 D:\Users\%USERNAME%
中创建用户配置文件。enable-inplace-upgrade.ps1
脚本会将 Windows 配置为在 C:\Users\%USERNAME%
中创建新的用户配置文件,并将用户 Shell 文件夹重定向到 D:\Users\%USERNAME%
。这个新的用户配置文件是在用户首次登录时创建的。
就地升级后,您可以选择将用户配置文件保留在驱动器 C 上,以允许用户在将来使用 Windows 更新进程升级其计算机。但请注意,无法在不丢失用户配置文件中所有数据的情况下重建或迁移在驱动器 C 上存储配置文件的 WorkSpace,除非您自行备份和还原这些数据。如果您决定在驱动器 C 上保留配置文件,则可以使用 UserShellFoldersRedirection 注册表项将用户 Shell 文件夹重定向到驱动器 D,如本主题后面所述。
为了确保您可以重建或迁移 WorkSpace 并避免出现与用户 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 –(默认值)禁用 AWS PV 驱动程序更新 1 –启用 AWS PV 驱动程序更新 |
执行就地升级
要在 BYOL WorkSpace 上启用就地 Windows 升级,您必须设置某些注册表项,如下面的过程所述。您还必须设置某些注册表项,以指示您希望在完成就地升级后在其中放置用户配置文件的驱动器(C 或 D)。
您可以手动进行这些注册表更改。如果要更新多个 WorkSpace,则可以使用组策略或 SCCM 推送 PowerShell 脚本。有关 PowerShell 脚本的示例,请参阅使用 PowerShell 脚本更新您的 WorkSpace 注册表。
执行 Windows 10 和 11 就地升级
-
记下要更新的 Windows 10 和 11 BYOL WorkSpace 上当前运行的 Windows 版本,然后重新启动它们。
-
更新以下 Windows 系统注册表项,将 Enabled (启用) 的数值数据从 0 更改为 1。这些注册表更改会启用 WorkSpace 的就地升级。
-
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1
-
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpaceConfig\update-pvdrivers.ps1
注意
如果这些键不存在,请重新启动 WorkSpace。重新启动系统时,应该会添加这些键。
(可选)如果您使用诸如 SCCM 任务序列之类的托管工作流来执行升级,请将以下键值设置为 1 以防止计算机重新启动:
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1\NoReboot
-
-
决定您希望在就地升级过程后将用户配置文件放在哪个驱动器上(有关详细信息,请参阅注意事项),并按以下方式设置注册表项:
-
如果您希望在升级后用户配置文件位于驱动器 C 上,请设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1
键名称:PostUpgradeRestoreProfileOnD
键值:0
键名称:UserShellFoldersRedirection
键值:1
-
如果您希望在升级后用户配置文件位于驱动器 D 上,请设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1
键名称:PostUpgradeRestoreProfileOnD
键值:1
键名称:UserShellFoldersRedirection
键值:0
-
-
保存注册表更改后,再次重新启动 WorkSpace 以便应用更改。
注意
-
重新启动后,登录到 WorkSpace 会创建一个新的用户配置文件。您可能会在开始菜单中看到占位符图标。此问题在就地升级完成后会自动解决。
-
等待 10 分钟,确保 WorkSpace 畅通无阻。
(可选)确认以下键值设置为 1,这将取消阻止 WorkSpace 进行更新:
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1\profileImagePathDeleted
-
-
执行就地升级。您可以使用任何您喜欢的方法,例如 SCCM、ISO 或 Windows Update (WU)。根据您的原始 Windows 10 和 11 版本及安装的应用程序数量,此过程可能需要 40-120 分钟。
注意
就地升级过程可能至少需要一个小时。WorkSpace 实例的状态在升级期间可能显示为
UNHEALTHY
。 -
更新过程结束后,请确认 Windows 版本已更新。
注意
如果就地升级失败,则 Windows 会自动回滚以使用开始升级之前已安装的 Windows 10 和 11 版本。有关疑难解答的更多信息,请参阅 Microsoft 文档
。 (可选)要确认更新脚本已成功执行,请验证以下键值是否设置为 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\WorkSpacesConfig\enable-inplace-upgrade.ps1\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 日志 > 应用程序 > 来源:Amazon 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 } }