移轉模組工具可讓您將組織從 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 Virtualization 和 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 應用程式群組。 用戶將能夠看到這兩個用戶端版本的摘要。
- 如果您不想變更使用者指派,請使用 None 。 稍後,您可以使用 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 虛擬桌面環境。