重要事項
Azure 虛擬桌面傳統版將於 2026 年 9 月 30 日停用。 淘汰後,將會封鎖傳統資源的連線。
若要防止中斷,請在 2026 年 9 月 30 日之前將剩餘的傳統資源移轉至以 Azure Resource Manager 為基礎的主機集區。
移轉模組工具可讓您將您的組織從Azure虛擬桌面 (傳統) 自動移轉至Azure虛擬桌面。 本文將向您展示如何使用該工具。
必要條件
在使用移轉模組之前,請確定您已準備好下列項目:
Azure 訂閱,您可以在其中建立新的 Azure 服務物件。
您必須獲派參與者角色,才能在訂用帳戶上建立 Azure 物件,以及使用者存取系統管理員角色,才能將使用者指派給應用程式群組。
遠端桌面服務至少 (RDS 租用戶或您要移轉的特定主機集區的 RDS) 參與者權限。
最新版本的 Microsoft.RdInfra.RDPowershell PowerShell 模組。
最新版本的 Az.DesktopVirtualization PowerShell 模組。
最新版本的 Az.Resources PowerShell 模組。
在您的電腦上安裝移轉模組。
PowerShell 或 PowerShell ISE 來執行您將在本文中看到的指令碼。 Microsoft.RdInfra.RDPowershell 模組無法在 PowerShell Core 中運作。
重要事項
移轉只會在美國地理位置建立服務物件。 如果您嘗試將服務物件移轉至其他地理位置,將無法運作。 此外,如果您的 Azure 虛擬桌面 (傳統) 部署中有超過 500 個應用程式群組,則無法移轉。 您只有在重建環境以減少 Microsoft Entra 租用戶內的應用程式群組數目時,才能移轉。
準備您的 PowerShell 環境
首先,您必須為移轉程序準備 PowerShell 環境。
若要準備您的 PowerShell 環境:
開始之前,請執行下列 Cmdlet,確定您擁有最新版本的 Az.Desktop 虛擬化和 Az.Resources 模組:
Get-Module Az.Resources Get-Module Az.DesktopVirtualization https://www.powershellgallery.com/packages/Az.DesktopVirtualization/ https://www.powershellgallery.com/packages/Az.Resources/如果沒有,則必須執行以下 cmdlet 來安裝和匯入模組:
Install-module Az.Resources Import-module Az.Resources Install-module Az.DesktopVirtualization Import-module Az.DesktopVirtualization接下來,執行此 Cmdlet 來解除安裝目前的 RDInfra PowerShell 模組:
Uninstall-Module -Name Microsoft.RDInfra.RDPowershell -AllVersions之後,使用下列 Cmdlet 安裝 RDPowershell 模組:
Install-Module -Name Microsoft.RDInfra.RDPowershell -RequiredVersion 1.0.3414.0 -force Import-module Microsoft.RDInfra.RDPowershell完成安裝所有項目後,請執行此 Cmdlet 以確保您擁有正確的模組版本:
Get-Module Microsoft.RDInfra.RDPowershell現在,讓我們執行這些 cmdlet 來安裝和匯入移轉模組:
Install-Module -Name PackageManagement -Repository PSGallery -Force Install-Module -Name PowerShellGet -Repository PSGallery -Force # Then restart shell Install-Module -Name Microsoft.RdInfra.RDPowershell.Migration -AllowClobber Import-Module <Full path to the location of the migration module>\Microsoft.RdInfra.RDPowershell.Migration.psd1完成後,在 PowerShell 視窗中登入Azure虛擬桌面 (傳統) :
Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com登入Azure Resource Manager:
Login-AzAccount如果您有多個訂閱,請使用此 Cmdlet 選取您想要移轉資源的訂閱:
Select-AzSubscription -Subscriptionid <subID>在 Azure 入口網站中為所選訂閱註冊資源提供者。
最後,您需要註冊提供者。 您有兩種做法:
如果您想要使用 PowerShell,請執行此 Cmdlet:
Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualization如果您想要使用 Azure 入口網站,請開啟並登入 Azure 入口網站,然後移至 [訂用帳戶],然後選取您想要使用的訂用帳戶名稱。 之後,請前往 資源提供者>Microsoft.DesktopVirtualization 並選取 [重新註冊]。 您目前不會在 UI 中看到任何變更,但您的 PowerShell 環境現在應該已準備好執行模組。
將Azure虛擬桌面 (傳統) 資源移轉到 Azure Resource Manager
現在您的 PowerShell 環境已準備就緒,您可以開始移轉程序。
若要將 Azure 虛擬桌面 (傳統) 資源移轉至Azure Resource Manager:
在移轉之前,如果您想要瞭解現有傳統資源如何對應到新的 Azure Resource Manager 資源,請執行此 Cmdlet:
Get-RdsHostPoolMigrationMapping使用 Get-RdsHostPoolMigrationMapping 時,您可以建立 CSV 檔案來對應資源的目的地。 例如,如果您租用戶的名稱是 “Contoso”,而且您想要將對應檔案儲存在 “contosouser” 檔案中,您會執行一個看起來像這樣的 cmdlet:
Get-RdsHostPoolMigrationMapping -Tenant Contoso -HostPool Office -Location EastUS -OutputFile 'C:\\Users\contosouser\OneDrive - Microsoft\Desktop\mapping.csv'接下來,執行 Start-RdsHostPoolMigration Cmdlet,選擇要移轉單一主機集區,或租用戶內的所有主機集區。
例如:
Start-RdsHostPoolMigration -Tenant Contoso -Location WestUS如果您想要將資源移轉至特定主機集區,請包含主機集區名稱。 例如,如果您想要移動名為 “Office” 的主機集區,請執行如下命令:
Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments $false -Location EastUS如果您未提供工作區名稱,模組會根據租用戶名稱自動為您建立工作區名稱。 不過,如果您想要使用特定的工作區,可以像這樣輸入其資源識別碼:
Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments -Location EastUS -Workspace <Resource ID of workspacename>如果您想要使用特定工作區,但不知道其資源識別碼,請執行此 Cmdlet:
Get-AzWvdWorkspace -WorkspaceName <workspace> -ResourceGroupName <resource group> |fl您也必須為現有的使用者指派指定使用者指派模式:
- 使用 [複製] 將舊應用程式群組中的所有使用者指派複製到Azure Resource Manager應用程式群組。 使用者將能夠查看其用戶端兩個版本的摘要。
- 如果您不想變更使用者指派,請使用 [無 ]。 稍後,您可以使用 Azure 入口網站、PowerShell 或 API 將使用者或使用者群組指派給應用程式群組。 使用者只能使用 Azure 虛擬桌面 (傳統) 用戶端查看摘要。
每個訂用帳戶只能複製 2,000 個使用者指派,因此您的限制取決於訂閱中已有的指派數量。 此模組會根據您已有的作業數量來計算限制。 如果您沒有足夠的指派可複製,您會收到錯誤訊息,指出「角色指派配額不足,無法複製使用者指派。 在不使用 -CopyUserAssignments 參數的情況下重新執行命令以移轉。」
執行命令之後,模組最多需要 15 分鐘的時間才能建立服務物件。 如果您複製或移動了任何使用者指派,這將會增加模組完成所有設定所需的時間。
Start-RdsHostPoolMigration Cmdlet 完成後,您應該會看到下列畫面:
您指定的租用戶或主機集區的 Azure 服務物件。
兩個新的資源群組:
名為 “Tenantname” 的資源群組,其中包含您的工作區。
稱為「Tenantname_originalHostPoolName」的資源群組,其中包含主機集區和傳統型應用程式群組。
您發佈到新建立應用程式群組的任何使用者。
現有和新的主機集區都將提供虛擬機器,以避免使用者在移轉過程中停機。 這可讓使用者連線到相同的使用者工作階段。
由於這些新的 Azure 服務物件是Azure Resource Manager物件,因此模組無法在其上設定角色型存取控制 (RBAC) 權限或診斷設定。 因此,您必須手動更新這些物件的 RBAC 權限和設定。
模組驗證初始使用者連線後,您也可以視需要將應用程式群組發佈給更多使用者或使用者群組。
注意事項
移轉之後,如果您在將權限指派給使用者之後,將應用程式群組移至不同的資源群組,將會移除所有 RBAC 角色。 您必須重新指派使用者 RBAC 權限。
如果您想要刪除所有 Azure 虛擬桌面 (傳統) 服務物件,請執行 Complete-RdsHostPoolMigration 以完成移轉程序。 此 Cmdlet 將刪除所有Azure虛擬桌面 (傳統) 物件,只保留新的 Azure 物件。 使用者只能在其用戶端上看到新建立之應用程式群組的摘要。 完成此命令後,您可以安全地刪除 Azure 虛擬桌面 (傳統) 租用戶以完成此過程。
例如:
Complete-RdsHostPoolMigration -Tenant Contoso -Location EastUS如果您想要完成特定的主機集區,您可以在 cmdlet 中包含主機集區名稱。 例如,如果您想要完成名為 “Office” 的主機集區,您可以使用如下命令:
Complete-RdsHostPoolMigration -Tenant Contoso -HostPool Office -Location EastUS這會刪除Azure虛擬桌面 (傳統) 建立的所有服務物件。 您將只剩下新的 Azure 物件,而使用者只能在其用戶端上看到新建立之應用程式群組的摘要。 完成移轉之後,您必須明確刪除Azure虛擬桌面 (傳統) 中的租用戶。
如果您已改變移轉的想法,而且想要還原該程序,請執行 Revert-RdsHostPoolMigration cmdlet。
例如:
Revert-RdsHostPoolMigration -Tenant Contoso -Location EastUS如果您想要還原特定主機集區,可以在命令中包含主機集區名稱。 例如,如果您想要還原名為 “Office” 的主機集區,則請輸入如下內容:
Revert-RdsHostPoolMigration -Tenant Contoso -HostPool Office -Location EastUS此 Cmdlet 會刪除所有新建立的 Azure 服務物件。 您的使用者只會在其用戶端中看到 Azure 虛擬桌面 (傳統) 物件的摘要。
不過,Cmdlet 不會刪除模組所建立的工作區或其相關聯的資源群組。 您必須手動刪除這些項目,以便將其清除。
如果您不想刪除 Azure 虛擬桌面 (傳統) 服務物件,但想要測試移轉,您可以執行 Set-RdsHostPoolHidden。
例如:
Set-RdsHostPoolHidden -Tenant Contoso -Hostpool Office -Hidden $true -Location WestUS將狀態設定為 “true” 將會隱藏Azure虛擬桌面 (傳統) 資源。 將它設定為 “false” 將會向使用者顯示資源。
-hostpool 參數為選用。 如果您想要隱藏特定 Azure 虛擬桌面 (傳統) 主機集區,您可以使用此參數。
此 Cmdlet 會隱藏 Azure 虛擬桌面 (傳統) 使用者摘要和服務物件,而不是刪除它們。 不過,這通常僅用於測試,不算作已完成的移轉。 若要完成移轉,您必須執行 Complete-RdsHostPoolMigration 命令。 否則,請執行 Revert-RdsHostPoolMigration 來還原您的部署。
自動移轉疑難排解
本節說明如何解決移轉模組中常見的問題。
我無法存取租用戶
首先,請嘗試下列兩件事:
- 請確定您的系統管理員帳戶具有存取租用戶的必要權限。
- 嘗試在租用戶上執行 Get-RdsTenant 。
如果這兩項設定可運作,請嘗試執行 Set-RdsMigrationContext Cmdlet 來為您的移轉設定 RDS 內容和 ADAL 內容:
執行 Add-RdsAccount Cmdlet 以建立 RDS 內容。
在全域變數 $rdMgmtContext中尋找 RDS 內容。
在全域變數 $AdalContext中尋找 ADAL 內容。
使用您以下列格式找到的變數執行 Set-RdsMigrationContext :
Set-RdsMigrationContext -RdsContext <rdscontext> -AdalContext <adalcontext>
後續步驟
如果您想要了解如何改為手動移轉部署,請參閱 Azure 虛擬桌面手動移轉 (傳統) 。
移轉完成後,請查看我們的教學課程,以瞭解 Azure 虛擬桌面的運作方式。 若要了解進階管理功能 ,請參閱擴充現有主機集區 和 自訂 RDP 屬性。
若要深入了解服務物件,請查看 Azure 虛擬桌面環境。