Partilhar via


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

A ferramenta do módulo de migração permite-lhe migrar a sua organização do Azure Virtual Desktop (clássico) para o Azure Virtual Desktop automaticamente. Este artigo irá mostrar-lhe como usar a ferramenta.

Pré-requisitos

Antes de usar o módulo de migração, verifique se você tem as seguintes coisas prontas:

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

  • Você deve receber a função de Colaborador para criar objetos do Azure em sua assinatura e a função de Administrador de Acesso de Usuário para atribuir usuários a grupos de aplicativos.

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

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

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

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

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

  • PowerShell ou PowerShell ISE 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 só cria objetos de serviço 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. Você só poderá migrar se reconstruir seu ambiente para reduzir o número de grupos de aplicativos em seu locatário do Microsoft Entra.

Preparar seu ambiente do PowerShell

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

Para preparar seu ambiente do PowerShell:

  1. Antes de começar, verifique se você tem 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 contrário, você 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 RDInfra PowerShell atual 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. Depois de concluir a instalação de 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 Gerenciador de Recursos do Azure:

    Login-AzAccount
    
  8. Se você tiver várias assinaturas, selecione a 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. Finalmente, você precisará registrar o provedor. Há duas maneiras de fazer isso:

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

      Register-AzResourceProvider -ProviderNamespace Microsoft.DesktopVirtualization
      
    • Se preferir utilizar o portal do Azure, abra e inicie sessão no portal do Azure e, em seguida, aceda a Subscrições e selecione o nome da subscrição que pretende utilizar. 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ássico) para o Azure Resource Manager

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

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

  1. Antes de migrar, se 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 seus recursos irã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 semelhante a 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 deseja migrar um único pool de hosts ou todos os pools de hosts dentro de um locatário.

    Por exemplo:

    Start-RdsHostPoolMigration -Tenant Contoso -Location WestUS
    

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

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

    Se você não fornecer um nome de espaço de trabalho, o módulo criará automaticamente um para você com base no nome do locatário. No entanto, se preferir usar um espaço de trabalho específico, você pode inserir sua ID de recurso da seguinte forma:

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

    Se você quiser usar um espaço de trabalho específico, mas não souber sua ID de 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 grupos de aplicativos do Azure Resource Manager. Os usuários poderão ver feeds para ambas as versões de seus clientes.
    • Use Nenhum se não quiser alterar as atribuições do usuário. Mais tarde, você pode atribuir usuários ou grupos de usuários a grupos de aplicativos com o portal do Azure, PowerShell ou API. Os usuários só poderão ver feeds usando os clientes da Área de Trabalho Virtual do Azure (clássicos).

    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 tarefas você já tem. Se você não tiver atribuições suficientes para copiar, receberá uma mensagem de erro dizendo "Cota de atribuição de função insuficiente para copiar atribuições de usuário. Execute novamente o comando sem a opção -CopyUserAssignments para migrar."

  3. Depois de executar os comandos, levará até 15 minutos para o módulo criar os objetos de serviço. Se você copiou ou moveu quaisquer atribuições de usuário, isso aumentará o tempo necessário para o módulo concluir a configuração de tudo.

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

    • Objetos de serviço do Azure para o locatário ou pool de hosts que você especificou.

    • Dois novos grupos de recursos:

      • Um grupo de recursos chamado "Tenantname", que contém seu espaço de trabalho.

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

    • Todos os usuários que você publicou nos grupos de aplicativos recém-criados.

    • As máquinas virtuais estarão disponíveis em pools de hosts 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 RBAC (Controle de Acesso Baseado em Função) ou configurações de diagnóstico neles. Portanto, você precisará atualizar as permissões e configurações do RBAC para esses objetos manualmente.

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

    Nota

    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 RBAC de usuários novamente.

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

    Por exemplo:

    Complete-RdsHostPoolMigration -Tenant Contoso -Location EastUS
    

    Se quiser concluir um pool de hosts específico, você pode incluir o nome do pool de hosts no cmdlet. Por exemplo, se você quiser concluir um pool de hosts 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ássico). Você ficará apenas com os novos objetos do Azure e os usuários só poderão ver o feed para os grupos de aplicativos recém-criados em seus clientes. Depois de concluir a migração, você precisa excluir explicitamente o locatário na Área de Trabalho Virtual do Azure (clássico).

  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 quiser reverter um pool de hosts específico, você pode incluir o nome do pool de hosts no comando. Por exemplo, se você quiser reverter um pool de hosts chamado "Office", insira algo assim:

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

    Este cmdlet excluirá todos os objetos de serviço do Azure recém-criados. Seus usuários verão apenas o feed para objetos da Área de Trabalho Virtual do Azure (clássicos) em seus clientes.

    No entanto, o cmdlet não excluirá o espaço de trabalho criado pelo módulo ou seu grupo de recursos associado. Você precisará excluir manualmente esses itens para se livrar deles.

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

    Por exemplo:

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

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

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

    Este 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 testes e não conta como uma migração concluída. Para concluir a migração, você precisará executar o comando Complete-RdsHostPoolMigration . Caso contrário, reverta sua implantação executando Revert-RdsHostPoolMigration.

Solucionar problemas de migração automática

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

Não consigo aceder ao inquilino

Primeiro, tente estas duas coisas:

  • Verifique se sua conta de administrador tem 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 RDS executando o cmdlet Add-RdsAccount .

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

  3. Encontre o contexto da ADAL na variável global $AdalContext.

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

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

Próximos passos

Se você quiser saber como migrar sua implantação manualmente, consulte Migrar manualmente da Área de Trabalho Virtual do Azure (clássico).

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

Para saber mais sobre objetos de serviço, confira Ambiente de Trabalho Virtual do Azure.