Автоматическая миграция с Виртуального рабочего стола Azure (классическая версия)

Модуль миграции позволяет автоматически перенести организацию из Виртуального рабочего стола Azure (классическая версия) в Виртуальный рабочий стол Azure. В этой статье показано, как пользоваться этим инструментом.

Необходимые компоненты

Прежде чем использовать модуль миграции, подготовьте следующие необходимые компоненты:

  • Подписка Azure, в которой вы создадите новые объекты службы Azure.

  • Вам должна быть назначена роль "Участник", чтобы можно было создавать объекты Azure в подписке, а также роль "Администратор доступа пользователей" для назначения пользователей группам приложений.

  • По крайней мере разрешения участника служб удаленных рабочих столов (RDS) для клиента RDS или пулов узлов, которые вы переносите.

  • Последняя версия модуля Microsoft.RdInfra.RDPowershell PowerShell module.

  • Последняя версия модуля Az.DesktopVirtualization PowerShell.

  • Последняя версия модуля Az.Resources PowerShell.

  • Установите модуль миграции на компьютере.

  • В этой статье описано использование модулей PowerShell или PowerShell ISEll для запуска скриптов. Модуль Microsoft.RdInfra.RDPowerShell не работает в PowerShell Core.

Важно!

При миграции создаются объекты служб только в географическом регионе США. Если попытаться перенести объекты службы в другой географический регион, они не будут работать. Кроме того, если в развертывании виртуального рабочего стола Azure (классического) более 500 групп приложений, вы не сможете перенести. Вы сможете перенести только в том случае, если вы перестроите среду, чтобы уменьшить количество групп приложений в клиенте Microsoft Entra.

Подготовка среды PowerShell

Сначала необходимо подготовить среду PowerShell для процесса миграции.

Чтобы подготовить среду PowerShell, выполните следующие действия.

  1. Перед началом работы убедитесь, что у вас установлена последняя версия модулей 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/
    

    При отсутствии последних версий вам придется установить и импортировать модули, выполнив следующие командлеты:

    Install-module Az.Resources
    Import-module Az.Resources
    Install-module Az.DesktopVirtualization
    Import-module Az.DesktopVirtualization
    
  2. Затем удалите текущий модуль PowerShell RDInfra, выполнив следующий командлет:

    Uninstall-Module -Name Microsoft.RDInfra.RDPowershell -AllVersions
    
  3. После этого установите модуль RDPowershell с помощью следующего командлета:

    Install-Module -Name Microsoft.RDInfra.RDPowershell -RequiredVersion 1.0.3414.0 -force
    Import-module Microsoft.RDInfra.RDPowershell
    
  4. После завершения установки выполните этот командлет, чтобы убедиться, что у вас установлены правильные версии модулей:

    Get-Module Microsoft.RDInfra.RDPowershell
    
  5. Теперь давайте установим и импортируем модуль миграции, выполнив следующие командлеты:

    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. После завершения войдите в Виртуальный рабочий стол Azure (классическая версия) в окне PowerShell:

    Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com
    
  7. Войдите в Azure Resource Manager:

    Login-AzAccount
    
  8. Если у вас есть несколько подписок, выберите ту, в которую вы хотите перенести ресурсы, с помощью этого командлета:

    Select-AzSubscription -Subscriptionid <subID>
    
  9. Зарегистрируйте поставщик ресурсов в портал Azure для выбранной подписки.

  10. Наконец, необходимо зарегистрировать поставщик. Предусмотрены два способа выполнения этой задачи.

    • Если вы хотите использовать PowerShell, выполните следующий командлет:

      Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualization
      
    • Если вы предпочитаете использовать портал Azure, откройте и войдите в портал Azure, перейдите в раздел Подписки и выберите имя нужной подписки. После этого перейдите в раздел Поставщик ресурсов>Microsoft.DesktopVirtualization и выберите Повторно зарегистрировать. Вы пока не увидите никаких изменений в пользовательском интерфейсе, но теперь среда PowerShell должна быть готова к запуску модуля.

Перенос ресурсов Виртуального рабочего стола Azure (классическая версия) в Azure Resource Manager

Теперь, когда среда PowerShell готова, можно начать процесс миграции.

Чтобы перенести ресурсы Виртуального рабочего стола Azure (классическая версия) в Azure Resource Manager, выполните следующие действия.

  1. Перед миграцией, если вы хотите понять, как существующие ресурсы из классической версии будут сопоставлены с новыми ресурсами Azure Resource Manager, выполните следующий командлет:

    Get-RdsHostPoolMigrationMapping
    

    С помощью Get-RdsHostPoolMigrationMapping можно создать CSV-файл, который покажет, куда будут перенесены ресурсы. Например, если имя клиента — Contoso и вы хотите сохранить файл сопоставления в файле contosouser, выполните командлет, который выглядит следующим образом:

    Get-RdsHostPoolMigrationMapping -Tenant Contoso -HostPool Office -Location EastUS -OutputFile 'C:\\Users\contosouser\OneDrive - Microsoft\Desktop\mapping.csv'
    
  2. Затем запустите командлет Start-RdsHostPoolMigration, чтобы выбрать, следует ли перенести один пул узлов или все пулы узлов в клиенте.

    Например:

    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>
    

    Если вы хотите использовать определенную рабочую область, но не знаете его идентификатор ресурса, выполните следующий командлет:

    Get-AzWvdWorkspace -WorkspaceName <workspace> -ResourceGroupName <resource group> |fl
    

    Кроме того, необходимо указать режим назначения пользователей для существующих назначений пользователей:

    • Скопируйте все назначения пользователей из старых групп приложений в группы приложений Azure Resource Manager. Пользователи смогут просматривать веб-каналы для обеих версий своих клиентов.
    • Выберите Нет, если вы не хотите изменять назначения пользователей. Позже можно назначить пользователей или группы пользователей группам приложений с помощью портал Azure, PowerShell или API. Пользователи смогут просматривать веб-каналы только с помощью клиентов Виртуального рабочего стола Azure (классическая версия).

    Вы можете копировать только 2000 назначений пользователей для каждой подписки, поэтому ограничение будет зависеть от количества уже имеющихся назначений в вашей подписке. Модуль вычисляет ограничение на основе имеющегося количества назначений. Если у вас недостаточно назначений для копирования, появится сообщение об ошибке "Недостаточно квоты назначения ролей для копирования назначений пользователей. Повторно запустите команду без параметра -CopyUserAssignments для выполнения миграции".

  3. После выполнения команд модулю потребуется до 15 минут, чтобы создать объекты службы. Если вы скопировали или переместили какие-либо назначения пользователей, это приведет к дополнительному увеличению указанного времени, которое потребуется модулю, чтобы завершить настройку всего.

    После выполнения командлета Start-RdsHostPoolMigration вы увидите следующее:

    • Объекты службы Azure для указанного клиента или пула узлов.

    • Две новые группы ресурсов:

      • Группа ресурсов с именем Tenantname, которая содержит рабочую область.

      • Группа ресурсов с именем "Tenantname_originalHostPoolName", которая содержит пул узлов и группы классических приложений.

    • Все пользователи, опубликованные в только что созданных группах приложений.

    • Виртуальные машины будут доступны как в существующих, так и в новых пулах узлов, чтобы избежать простоя пользователей во время миграции. Это позволяет пользователям подключаться к одному сеансу пользователя.

    Так как эти новые объекты службы Azure являются объектами Azure Resource Manager, модуль не может задавать разрешения контроля доступа на основе ролей (RBAC) или параметры диагностики для них. Поэтому для этих объектов необходимо вручную обновить разрешения и параметры RBAC.

    После проверки начальных подключений пользователей модуль также может опубликовать группу приложений для нескольких пользователей или групп пользователей, если вы хотите.

    Примечание.

    После миграции при перемещении групп приложений в другую группу ресурсов после назначения разрешений пользователям она удалит все роли RBAC. Вам потребуется повторно назначить разрешения RBAC для пользователей.

  4. Если вы хотите удалить все объекты службы Виртуального рабочего стола Azure (классическая модель), выполните команду Complete-RdsHostPoolMigration, чтобы завершить процесс миграции. Этот командлет удалит все объекты Виртуального рабочего стола Azure (классическая модель), оставив только новые объекты Azure. Пользователи смогут просматривать веб-канал только для только что созданных групп приложений на своих клиентах. После выполнения этой команды можно удалить клиент Виртуального рабочего стола Azure (классическая версия), чтобы завершить процесс.

    Например:

    Complete-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    Если вы хотите завершить миграцию определенного пула узлов, можно включить имя пула узлов в командлет. Например, если вы хотите завершить миграцию пула узлов с именем "Office", используйте следующую команду:

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

    При этом будут удалены все объекты службы, созданные Виртуальным рабочим столом Azure (классическая версия). Вы останетесь только новыми объектами Azure, и пользователи смогут просматривать веб-канал только для новых групп приложений на своих клиентах. После завершения миграции необходимо явным образом удалить клиент в Виртуальном рабочем столе Azure (классическая версия).

  5. Если вы передумали о миграции и хотите отменить процесс, выполните командлет Revert-RdsHostPoolMigration.

    Например:

    Revert-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    Если вы хотите отменить определенный пул узлов, можно включить в команду имя пула узлов. Например, если вы хотите отменить пул узлов с именем "Office", введите следующее:

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

    Этот командлет удалит все недавно созданные объекты службы Azure. Пользователи будут видеть в своих клиентах только веб-канал для объектов Виртуального рабочего стола Azure (классическая версия).

    Однако данный командлет не удаляет рабочую область, созданную модулем или связанной с ней группой ресурсов. Их придется удалить вручную.

  6. Если вы еще не хотите удалять объекты службы Виртуального рабочего стола Azure (классическая версия), но при этом хотите протестировать миграцию, можно запустить Set-RdsHostPoolHidden.

    Например:

    Set-RdsHostPoolHidden -Tenant Contoso -Hostpool Office -Hidden $true -Location WestUS
    

    Если указать для состояния значение "true", ресурсы Виртуального рабочего стола Azure (классическая версия) будут скрыты. Если задать для него значение "false", ресурсы станут видимыми для пользователей.

    Параметр -Hostpool является необязательным. Этот параметр можно использовать, если требуется скрыть определенный пул узлов Виртуального рабочего стола Azure (классической версии).

    Этот командлет скрывает веб-канал и объекты службы Виртуального рабочего стола Azure (классической версии), но не удаляет их. Однако обычно это используется только для тестирования и не считается завершенной миграцией. Чтобы завершить миграцию, необходимо выполнить команду Complete-RdsHostPoolMigration. В противном случае верните можно вернуть развернутую среду, выполнив команду Revert-RdsHostPoolMigration.

Устранение неполадок автоматической миграции

В этом разделе объясняется, как устранить распространенные проблемы в модуле миграции.

Не удается получить доступ к клиенту

Во-первых, попробуйте сделать следующее:

  • Убедитесь, что учетной записи администратора предоставлены необходимые разрешения для доступа к клиенту.
  • Попробуйте запустить Get-RdsTenant на клиенте.

Если обе указанные операции выполнены успешно, попробуйте запустить командлет Set-RdsMigrationContext, чтобы задать контекст RDS и контекст ADAL для миграции:

  1. Создайте контекст RDS, выполнив командлет Add-RdsAccount.

  2. Найдите контекст RDS в глобальной переменной $rdMgmtContext.

  3. Найдите контекст ADAL в глобальной переменной $AdalContext.

  4. Запустите Set-RdsMigrationContext с найденными переменными в следующем формате:

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

Следующие шаги

Если вы хотите узнать, как перенести развернутую среду вручную, см. раздел Миграция с Виртуального рабочего стола Azure (классическая версия) в ручном режиме.

После проведения миграции ознакомьтесь с нашими учебниками, чтобы узнать, как работает Виртуальный рабочий стол Azure. Дополнительные сведения о возможностях расширенного управления см. в статье Расширение существующего пула узлов и Пользовательская настройка свойств RDP.

Дополнительные сведения об объектах служб см. в статье Среда Виртуального рабочего стола Azure.