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

Важно!

Поддержка классического Виртуального рабочего стола Azure завершается 30 сентября 2026 г. Подключения к классическим ресурсам будут заблокированы после прекращения поддержки.

Чтобы предотвратить перебои, перенесите оставшиеся классические ресурсы в пулы узлов на базе Azure Resource Manager до 30 сентября 2026 г.

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

Предварительные условия

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

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

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

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

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

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

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

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

  • PowerShell или PowerShell ISE для выполнения сценариев, которые вы увидите в этой статье. Модуль 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. Затем удалите текущий модуль RDInfra PowerShell, запустив этот командлет:

    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
    

    Если задать состояние "истина", ресурсы Виртуального рабочего стола 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.