Migrar automaticamente da Área de Trabalho Virtual do Azure (clássica)

A ferramenta de módulo de migração permite migrar a organização da Área de Trabalho Virtual do Azure (clássica) para a Área de Trabalho Virtual do Azure automaticamente. Este artigo mostrará como usar a ferramenta.

Pré-requisitos

Antes de usar o módulo de migração, providencie o seguinte:

  • Uma assinatura do Azure em que você criará novos objetos de serviço do Azure.

  • Você deve ser atribuído à função de Colaborador para criar objetos do Azure em sua assinatura e à função Administrador de acesso do usuário para atribuir usuários a grupos de aplicativos.

  • Pelo menos Serviços de Área de Trabalho Remota de Colaborador (RDS) em um locatário RDS ou nos pools de host específicos que você está migrando.

  • A versão mais recente do módulo Microsoft.RdInfra.RDPowershell do PowerShell.

  • A versão mais recente do módulo Az.DesktopVirtualization do PowerShell.

  • A versão mais recente do módulo Az.Resources do PowerShell.

  • Instalar o módulo de migração no seu computador.

  • PowerShell ou ISE do PowerShell para executar os scripts que você verá neste artigo. O módulo Microsoft.RdInfra.RDPowershell não funciona no PowerShell Core.

Importante

A migração cria objetos de serviço apenas na geografia dos EUA. Se você tentar migrar seus objetos de serviço para outra geografia, isso não funcionará. Além disso, se você tiver mais de 500 grupos de aplicativos em sua implantação da Área de Trabalho Virtual do Azure (clássica), não poderá migrar. Só será possível migrar se você recriar seu ambiente para reduzir o número de grupos de aplicativos em seu locatário do Microsoft Entra.

Preparar o ambiente do PowerShell

Primeiro, você precisará preparar seu ambiente do PowerShell para o processo de migração.

Para preparar o ambiente do PowerShell:

  1. Antes de começar, certifique-se de ter a versão mais recente dos módulos Az.Desktop Virtualization e Az.Resources executando os seguintes cmdlets:

    Get-Module Az.Resources
    Get-Module Az.DesktopVirtualization
    https://www.powershellgallery.com/packages/Az.DesktopVirtualization/
    https://www.powershellgallery.com/packages/Az.Resources/
    

    Caso não o faça, terá que instalar e importar os módulos executando estes cmdlets:

    Install-module Az.Resources
    Import-module Az.Resources
    Install-module Az.DesktopVirtualization
    Import-module Az.DesktopVirtualization
    
  2. Em seguida, desinstale o módulo atual do PowerShell RDInfra executando este cmdlet:

    Uninstall-Module -Name Microsoft.RDInfra.RDPowershell -AllVersions
    
  3. Depois disso, instale o módulo RDPowershell com este cmdlet:

    Install-Module -Name Microsoft.RDInfra.RDPowershell -RequiredVersion 1.0.3414.0 -force
    Import-module Microsoft.RDInfra.RDPowershell
    
  4. Quando terminar de instalar tudo, execute este cmdlet para garantir que você tenha as versões corretas dos módulos:

    Get-Module Microsoft.RDInfra.RDPowershell
    
  5. Agora, vamos instalar e importar o módulo de migração executando estes cmdlets:

    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. Quando terminar, entre na Área de Trabalho Virtual do Azure (clássica) na janela do PowerShell:

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

    Login-AzAccount
    
  8. Se você tiver várias assinaturas, selecione aquela para a qual deseja migrar seus recursos com este cmdlet:

    Select-AzSubscription -Subscriptionid <subID>
    
  9. Registre o Provedor de Recursos no portal do Azure para a assinatura selecionada.

  10. Por fim, você precisará registrar o provedor. Há duas formas de fazer isso:

    • Se você quiser usar o PowerShell, execute este cmdlet:

      Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualization
      
    • Se você preferir usar o portal do Azure, abra e entre no portal do Azure, acesse Assinaturas e selecione o nome da assinatura que deseja usar. Depois disso, vá para Provedor de Recursos>Microsoft.DesktopVirtualization e selecione Registrar novamente. Você ainda não verá nenhuma alteração na interface do usuário, mas seu ambiente do PowerShell agora deve estar pronto para executar o módulo.

Migrar recursos da Área de Trabalho Virtual do Azure (clássica) para o Azure Resource Manager

Agora que seu ambiente do PowerShell está pronto, você pode iniciar o processo de migração.

Para migrar recursos da Área de Trabalho Virtual do Azure (clássica) para o Azure Resource Manager:

  1. Antes de migrar, se você quiser entender como os recursos clássicos existentes serão mapeados para novos recursos do Azure Resource Manager, execute este cmdlet:

    Get-RdsHostPoolMigrationMapping
    

    Com Get-RdsHostPoolMigrationMapping, você pode criar um arquivo CSV que mapeia para onde os recursos vão. Por exemplo, se o nome do locatário for "Contoso" e você quiser armazenar o arquivo de mapeamento no arquivo "contosouser", execute um cmdlet como este:

    Get-RdsHostPoolMigrationMapping -Tenant Contoso -HostPool Office -Location EastUS -OutputFile 'C:\\Users\contosouser\OneDrive - Microsoft\Desktop\mapping.csv'
    
  2. Em seguida, execute o cmdlet Start-RdsHostPoolMigration para escolher se deve migrar um único pool de host ou todos os pools de host dentro de um locatário.

    Por exemplo:

    Start-RdsHostPoolMigration -Tenant Contoso -Location WestUS
    

    Se você quiser migrar seus recursos para um pool de host específico, inclua o nome do pool de host. Por exemplo, se você quiser mover o pool de host chamado "Office", execute um comando como este:

    Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments $false -Location EastUS
    

    Se você não der um nome de workspace, o módulo criará automaticamente um para você com base no nome do locatário. No entanto, se você preferir usar um workspace específico, poderá inserir sua ID do recurso desta forma:

    Start-RdsHostPoolMigration -Tenant Contoso -HostPool Office -CopyUserAssignments -Location EastUS -Workspace <Resource ID of workspacename>
    

    Se você quiser usar um workspace específico, mas não sabe sua ID do recurso, execute este cmdlet:

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

    Você também precisará especificar um modo de atribuição de usuário para as atribuições de usuário existentes:

    • Use Copiar para copiar todas as atribuições de usuário de seus grupos de aplicativos antigos para os grupos de aplicativos do Azure Resource Manager. Os usuários poderão ver feeds para ambas as versões de seus clientes.
    • Use None se não quiser alterar as atribuições de usuário. Posteriormente, você pode atribuir usuários ou grupos de usuários a grupos de aplicativos com o portal do Azure, o PowerShell ou a API. Os usuários só poderão ver feeds usando os clientes da Área de Trabalho Virtual do Azure (clássica).

    Você só pode copiar 2.000 atribuições de usuário por assinatura, portanto, seu limite dependerá de quantas atribuições já estão em sua assinatura. O módulo calcula o limite com base em quantas atribuições você já tem. Se você não tiver atribuições suficientes para copiar, você obterá uma mensagem de erro informando "Cota de atribuição de função insuficiente para copiar atribuições de usuário. Execute o comando novamente sem alternar -CopyUserAssignments para migrar."

  3. Depois de executar os comandos, levará até 15 minutos para que o módulo crie os objetos de serviço. Se você copiou ou moveu quaisquer atribuições de usuário, isso adicionará ao tempo necessário para que o módulo termine de configurar tudo.

    Depois que o cmdlet Start-RdsHostPoolMigration for concluído, você deverá ver o seguinte:

    • Objetos de serviço do Azure para o locatário ou pool de host especificado.

    • Dois novos grupos de recursos:

      • Um grupo de recursos chamado "Tenantname", que contém seu workspace.

      • Um grupo de recursos chamado "Tenantname_originalHostPoolName", que contém o pool de host e os grupos de aplicativos da área de trabalho.

    • Todos os usuários que você publicou nos grupos de aplicativos criados recentemente.

    • As máquinas virtuais estarão disponíveis em pools de host novos e existentes para evitar o tempo de inatividade do usuário durante o processo de migração. Isso permite que os usuários se conectem à mesma sessão de usuário.

    Como esses novos objetos de serviço do Azure são objetos do Azure Resource Manager, o módulo não pode definir permissões de RBAC (Controle de Acesso Baseado em Função) ou configurações de diagnóstico neles. Portanto, você precisará atualizar as permissões e as configurações do RBAC para esses objetos manualmente.

    Depois que o módulo validar as conexões de usuário iniciais, você também poderá publicar o grupo de aplicativos para mais usuários ou grupos de usuários, se quiser.

    Observação

    Após a migração, se você mover grupos de aplicativos para um grupo de recursos diferente depois de atribuir permissões aos usuários, ele removerá todas as funções RBAC. Você precisará reatribuir permissões de RBAC de usuários novamente.

  4. Se você quiser excluir todos os objetos de serviço da Área de Trabalho Virtual do Azure (clássica), execute Complete-RdsHostPoolMigration para concluir o processo de migração. Esse cmdlet excluirá todos os objetos da Área de Trabalho Virtual do Azure (clássico), deixando apenas os novos objetos do Azure. Os usuários só poderão ver o feed dos grupos de aplicativos recém-criados em seus clientes. Depois que esse comando for feito, você poderá excluir com segurança o locatário da Área de Trabalho Virtual do Azure (clássica) para concluir o processo.

    Por exemplo:

    Complete-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    Se você quiser concluir um pool de host específico, poderá incluir o nome do pool de host no cmdlet. Por exemplo, se você quiser concluir um pool de host chamado "Office", use um comando como este:

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

    Isso excluirá todos os objetos de serviço criados pela Área de Trabalho Virtual do Azure (clássica). Só restarão os novos objetos do Azure para você e os usuários só poderão ver o feed dos grupos de aplicativos criados recentemente em seus clientes. Quando terminar de finalizar sua migração, você precisará excluir explicitamente o locatário na Área de Trabalho Virtual do Azure (clássica).

  5. Se você mudou de ideia sobre a migração e deseja reverter o processo, execute o cmdlet Revert-RdsHostPoolMigration.

    Por exemplo:

    Revert-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    Se você quiser reverter um pool de host específico, poderá incluir o nome do pool de host no comando. Por exemplo, se você quiser reverter um pool de host chamado "Office", insira algo assim:

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

    Esse cmdlet excluirá todos os objetos de serviço do Azure criados recentemente. Os usuários só verão o feed para objetos da Área de Trabalho Virtual do Azure (clássico) em seus clientes.

    No entanto, o cmdlet não excluirá o workspace que o módulo criou ou seu grupo de recursos associado. Você precisará excluir manualmente esses itens para se desfazer deles.

  6. Se não quiser excluir seus objetos de serviço da Área de Trabalho Virtual do Azure (clássico), mas quiser testar a migração, você pode executar Set-RdsHostPoolHidden.

    Por exemplo:

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

    Definir o status como "true" ocultará os recursos da Área de Trabalho Virtual do Azure (clássico). Defini-lo como "false" revelará os recursos para os usuários.

    O parâmetro -Hostpool é opcional. Você poderá usar esse parâmetro se houver um pool de host específico da Área de Trabalho Virtual do Azure (clássico) que você deseja ocultar.

    Esse cmdlet ocultará o feed de usuário da Área de Trabalho Virtual do Azure (clássico) e os objetos de serviço em vez de excluí-los. No entanto, isso geralmente é usado apenas para teste e não conta como uma migração concluída. Para concluir sua migração, você precisará executar o comando Complete-RdsHostPoolMigration. Caso contrário, reverta a implantação executando Revert-RdsHostPoolMigration.

Solucionar problemas de migração automática

Esta seção explica como resolver problemas geralmente encontrados no módulo de migração.

Não consigo acessar o locatário

Primeiro, experimente estas duas coisas:

  • Certifique-se de que sua conta de administrador tenha as permissões necessárias para acessar o locatário.
  • Tente executar Get-RdsTenant no locatário.

Se essas duas coisas funcionarem, tente executar o cmdlet Set-RdsMigrationContext para definir o Contexto RDS e o Contexto ADAL para sua migração:

  1. Crie o contexto de RDS executando o cmdlet Add-RdsAccount.

  2. Encontre o Contexto de RDS na variável global $rdMgmtContext.

  3. Encontre o Contexto de ADAL na variável global $AdalContext.

  4. Execute Set-RdsMigrationContext com as variáveis encontradas neste formato:

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

Próximas etapas

Para saber como migrar sua implantação manualmente, acesse Migrar manualmente da Área de Trabalho Virtual do Azure (clássico).

Depois de migrar, para saber como a Área de Trabalho Virtual do Azure funciona, consulte nossos tutoriais. Saiba mais sobre os recursos de gerenciamento avançados em Expandir um pool de host existente e Personalizar propriedades RDP.

Para saber mais sobre os objetos de serviço, consulte Ambiente da Área de Trabalho Virtual do Azure.