共用方式為


從 Azure 虛擬桌面 (傳統) 自動移轉

移轉模組工具可協助您將組織自動從 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 環境:

  1. 開始之前,請執行下列 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
    
  2. 接下來,執行此 Cmdlet 以卸載目前的 RDInfra PowerShell 模組:

    Uninstall-Module -Name Microsoft.RDInfra.RDPowershell -AllVersions
    
  3. 之後,使用此 Cmdlet 安裝 RDPowershell 模組:

    Install-Module -Name Microsoft.RDInfra.RDPowershell -RequiredVersion 1.0.3414.0 -force
    Import-module Microsoft.RDInfra.RDPowershell
    
  4. 安裝所有項目之後,執行此 Cmdlet 以確定您有正確的模組版本:

    Get-Module Microsoft.RDInfra.RDPowershell
    
  5. 現在,讓我們執行下列 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
    
  6. 完成之後,在 PowerShell 視窗中登入 Azure 虛擬桌面 (傳統):

    Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com
    
  7. 登入 Azure Resource Manager:

    Login-AzAccount
    
  8. 如果您有多個訂用帳戶,請選取您想要用以移轉資源的訂閱來使用此 Cmdlet:

    Select-AzSubscription -Subscriptionid <subID>
    
  9. 在 Azure 入口網站中,針對所選訂用帳戶註冊資源提供者。

  10. 最後,您必須註冊提供者。 有兩種方式可讓您完成這個步驟:

    • 如果您想要使用 PowerShell,請執行此 Cmdlet:

      Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualization
      
    • 如果您想要使用 Azure 入口網站,請開啟並登入Azure 入口網站,然後移至 [訂用帳戶],然後選取您想要使用的訂用帳戶名稱。 之後,移至 [資源提供者]>[Microsoft.DesktopVirtualization],然後選取 [重新註冊]。 您目前不會在 UI 中看到任何變更,但您的 PowerShell 環境現在應該已準備好執行模組。

將 Azure 虛擬桌面 (傳統) 資源移轉至 Azure Resource Manager

現在您的 PowerShell 環境已就緒,您可以開始移轉程序。

若要將 Azure 虛擬桌面 (傳統) 資源移轉至 Azure Resource Manager:

  1. 在移轉之前,如果您想要瞭解現有傳統資源如何對應至新的 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'
    
  2. 接下來,執行 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 參數的情況下重新執行命令以進行移轉。」

  3. 執行命令之後,模組最多需要 15 分鐘才能建立服務物件。 如果您複製或移動了任何使用者指派,則會增加模組完成所有設定所需的時間。

    Start-RdsHostPoolMigration Cmdlet 完成之後,您應該會看到下列內容:

    • 您所指定租用戶或主機集區的 Azure 服務物件。

    • 兩個新的資源群組:

      • 名為「Tenantname」的資源群組,其中包含您的工作區。

      • 名為「Tenantname_originalHostPoolName」的資源群組,其中包含主機集區和桌面應用程式群組。

    • 您發佈至新建立應用程式群組的任何使用者。

    • 虛擬機器可在現有和新的主機集區中使用,以避免在移轉程序期間發生使用者停機。 這可讓使用者連線至相同的使用者工作階段。

    由於這些新的 Azure 服務物件屬於 Azure Resource Manager 物件,因此模組無法設定角色型存取控制 (RBAC) 權限或診斷設定。 因此,您必須手動更新這些物件的 RBAC 權限和設定。

    模組驗證初始使用者連線之後,如果您想要的話,也可以將應用程式群組發佈至更多的使用者或使用者群組。

    注意

    移轉之後,如果您在將權限指派給使用者之後,將應用程式群組移至不同的資源群組,這將會移除所有 RBAC 角色。 您必須重新指派使用者 RBAC 權限。

  4. 如果您想要刪除所有 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 虛擬桌面 (傳統) 中明確刪除租用戶。

  5. 如果您對於移轉已改變想法,且想要還原程序,請執行 Revert-RdsHostPoolMigration Cmdlet。

    例如:

    Revert-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    如果您想要還原特定的主機集區,則可以在命令中包含主機集區名稱。 例如,如果您想要還原名為「Office」的主機集區,請輸入如下的內容:

    Revert-RdsHostPoolMigration -Tenant Contoso -HostPool Office -Location EastUS
    

    此 Cmdlet 將會刪除所有新建立的 Azure 服務物件。 您的使用者只會在其用戶端中看到 Azure 虛擬桌面 (傳統) 物件的摘要。

    不過,Cmdlet 不會刪除模組建立的工作區或其相關聯的資源群組。 您必須手動刪除這些項目才能將其移除。

  6. 如果您不想刪除 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 內容:

  1. 執行 Add-RdsAccount Cmdlet 來建立 RDS 內容。

  2. 在全域變數 $rdMgmtContext 中尋找 RDS 內容。

  3. 在全域變數 $AdalContext 中尋找 ADAL 內容。

  4. 使用您以下列格式找到的變數執行 Set-RdsMigrationContext

    Set-RdsMigrationContext -RdsContext <rdscontext> -AdalContext <adalcontext>
    

下一步

如果您想要瞭解如何改為手動移轉部署,請參閱從 Azure 虛擬桌面 (傳統) 手動移轉

移轉之後,請參閱我們的教學課程,了解 Azure 虛擬桌面的運作方式。 透過擴充現有的主機集區自訂 RDP 屬性了解進階管理功能。

若要深入了解服務物件,請參閱 Azure 虛擬桌面環境