Identificar e diagnosticar problemas na Área de Trabalho Virtual do Azure (clássica)

Importante

Este conteúdo se aplica à Área de Trabalho Virtual do Azure (clássica), que não dá suporte a objetos do Azure Resource Manager. Se você estiver tentando gerenciar objetos do Azure Resource Manager na Área de Trabalho Virtual do Azure, confira este artigo.

A Área de Trabalho Virtual do Azure oferece um recurso de diagnóstico que permite ao administrador identificar problemas por meio de uma única interface. As funções da Área de Trabalho Virtual do Azure registram uma atividade de diagnóstico sempre que um usuário interage com o sistema. Cada log contém informações relevantes, como as funções da Área de Trabalho Virtual do Azure envolvidas na transação, as mensagens de erro, as informações do locatário e as informações do usuário. As atividades de diagnóstico são criadas pelas ações do usuário final e do administrador e podem ser categorizadas em três buckets principais:

  • Atividades de assinatura do feed: o usuário final aciona essas atividades sempre que tenta se conectar ao feed por meio de aplicativos da Área de Trabalho Remota da Microsoft.
  • Atividades de conexão: o usuário final aciona essas atividades sempre que tenta se conectar a uma área de trabalho ou RemoteApp por meio de aplicativos da Área de Trabalho Remota da Microsoft.
  • Atividades de gerenciamento: o administrador aciona essas atividades sempre que realiza operações de gerenciamento no sistema, como a criação de pools de hosts, a atribuição de usuários a grupos de aplicativos e a criação de atribuições de função.

As conexões que não acessam a Área de Trabalho Virtual do Azure não são exibidas nos resultados do diagnóstico porque o próprio serviço da função de diagnóstico faz parte da Área de Trabalho Virtual do Azure. Problemas de conexão da Área de Trabalho Virtual do Azure podem ocorrer quando o usuário final enfrenta problemas de conectividade de rede.

Para começar, baixe e importe o módulo do PowerShell para a Área de Trabalho Virtual do Azure a fim de usá-lo na sessão do PowerShell, se você ainda não tiver feito isso. Depois disso, execute o seguinte cmdlet para entrar em sua conta:

Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"

Diagnosticar problemas com o PowerShell

O diagnóstico da Área de Trabalho Virtual do Azure usa apenas um cmdlet do PowerShell, mas contém muitos parâmetros opcionais para ajudar a restringir e isolar os problemas. As seções a seguir listam os cmdlets que você pode executar para diagnosticar problemas. A maioria dos filtros pode ser aplicada em conjunto. Os valores listados entre parênteses, como <tenantName>, devem ser substituídos pelos valores que se aplicam à situação.

Importante

O recurso de diagnóstico é para a solução de problemas de usuário único. Todas as consultas que usam o PowerShell devem incluir os parâmetros -UserName ou -ActivityID. Para recursos de monitoramento, use o Log Analytics. Confira Usar Log Analytics para o recurso de diagnóstico para obter mais informações sobre como enviar dados de diagnóstico para o espaço de trabalho.

Filtrar atividades de diagnóstico por usuário

O parâmetro -UserName retorna uma lista de atividades de diagnóstico iniciadas pelo usuário especificado, conforme mostrado no exemplo de cmdlet a seguir.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN>

O parâmetro -UserName também pode ser combinado com outros parâmetros de filtragem opcionais.

Filtrar atividades de diagnóstico por tempo

Você pode filtrar a lista de atividades de diagnóstico retornada com os parâmetros -StartTime e -EndTime. O parâmetro -StartTime retorna uma lista de atividades de diagnóstico a partir de uma data específica, conforme mostrado no exemplo a seguir.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018"

O parâmetro -EndTime pode ser adicionado a um cmdlet com o parâmetro -StartTime, para especificar um período específico para o qual você deseja receber resultados. O exemplo de cmdlet a seguir retorna uma lista de atividades de diagnóstico entre 1º de agosto e 10 de agosto.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018" -EndTime "08/10/2018"

Os parâmetros -StartTime e -EndTime também podem ser combinados com outros parâmetros de filtragem opcionais.

Filtrar atividades de diagnóstico por tipo

Você também pode filtrar atividades de diagnóstico por tipo de atividade com o parâmetro -ActivityType. O cmdlet a seguir retorna uma lista de conexões do usuário final:

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -ActivityType Connection

O cmdlet a seguir retorna uma lista de tarefas de gerenciamento do administrador:

Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityType Management

No momento, o cmdlet Get-RdsDiagnosticActivities não é compatível com a especificação de feed como ActivityType.

Filtrar atividades de diagnóstico por resultado

Você pode filtrar a lista de atividades de diagnóstico retornada por resultado com o parâmetro -Outcome. O exemplo de cmdlet a seguir retorna uma lista de atividades de diagnóstico com sucesso.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -Outcome Success

O exemplo de cmdlet a seguir retorna uma lista de atividades de diagnóstico com falha.

Get-RdsDiagnosticActivities -TenantName <tenantName> -Outcome Failure

O parâmetro -Outcome também pode ser combinado com outros parâmetros de filtragem opcionais.

Recuperar uma atividade de diagnóstico específica por ID da atividade

O parâmetro -ActivityId retorna uma atividade de diagnóstico específica, se existir, conforme mostrado no exemplo de cmdlet a seguir.

Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityIdGuid>

Exibir mensagens de erro para uma atividade com falha por ID da atividade

Para exibir as mensagens de erro de uma atividade com falha, você deve executar o cmdlet com o parâmetro -Detailed. Você pode exibir a lista de erros executando o cmdlet Select-Object.

Get-RdsDiagnosticActivities -TenantName <tenantname> -ActivityId <ActivityGuid> -Detailed | Select-Object -ExpandProperty Errors

Recuperar atividades de diagnóstico detalhadas

O parâmetro -Detailed fornece detalhes adicionais para cada atividade de diagnóstico retornada. O formato de cada atividade varia dependendo do tipo de atividade. O parâmetro -Detailed pode ser adicionado a qualquer consulta Get-RdsDiagnosticActivities, conforme mostrado no exemplo a seguir.

Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityGuid> -Detailed

Cenários de erro comuns

Os cenários de erro são categorizados como internos do serviço e externos à Área de Trabalho Virtual do Azure.

  • Problema interno: especifica cenários que não podem ser mitigados pelo administrador de locatários e precisam ser resolvidos como um problema de suporte. Ao fornecer feedback por meio da Tech Community da Área de Trabalho Virtual do Azure, inclua a ID da atividade e o horário aproximado em que o problema ocorreu.
  • Problema externo: está relacionado a cenários que podem ser mitigados pelo administrador do sistema. Eles são externos à Área de Trabalho Virtual do Azure.

A tabela a seguir lista os erros comuns que os administradores podem encontrar.

Observação

Essa lista inclui os erros mais comuns e é atualizada regularmente. Para garantir que você tenha as informações mais atualizadas, verifique este artigo pelo menos uma vez por mês.

Códigos de erro de gerenciamento externo

Código numérico Código do erro Solução sugerida
1322 ConnectionFailedNoMappingOfSIDinAD O usuário não é membro do Azure Active Directory. Siga as instruções no Centro Administrativo do Active Directory para adicioná-lo.
3 UnauthorizedAccess O usuário que tentou executar o cmdlet do PowerShell do administrador não tem permissões para fazer isso ou digitou o nome de usuário incorretamente.
1000 TenantNotFound O nome do locatário que você inseriu não corresponde aos locatários existentes. Examine o nome do locatário quanto a erros de digitação e tente novamente.
1006 TenantCannotBeRemovedHasSessionHostPools Não é possível excluir um locatário enquanto ele contiver objetos. Exclua primeiro os pools de host da sessão e tente novamente.
2000 HostPoolNotFound O nome do pool de host que você inseriu não corresponde aos pools de host existentes. Examine o nome do pool de host quanto a erros de digitação e tente novamente.
2005 HostPoolCannotBeRemovedHasApplicationGroups Não é possível excluir um pool de host enquanto ele contiver objetos. Primeiro remova todos os grupos de aplicativos no pool de hosts.
2004 HostPoolCannotBeRemovedHasSessionHosts Remova todos os hosts da sessão antes de excluir o pool de hosts da sessão.
5001 SessionHostNotFound O host da sessão que você consultou pode estar offline. Verifique o status do pool de host.
5008 SessionHostUserSessionsExist Você deve desconectar todos os usuários no host da sessão antes de executar a atividade de gerenciamento pretendida.
6000 AppGroupNotFound O nome do grupo de aplicativos que você inseriu não corresponde aos grupos de aplicativos existentes. Examine o nome do grupo de aplicativos quanto a erros de digitação e tente novamente.
6022 RemoteAppNotFound O nome do RemoteApp que você digitou não corresponde aos RemoteApps. Examine o nome do RemoteApp quanto a erros de digitação e tente novamente.
6010 PublishedItemsExist O nome do recurso que você está tentando publicar é o mesmo de um recurso que já existe. Altere o nome do recurso e tente novamente.
7002 NameNotValidWhiteSpace Não use um espaço em branco no nome.
8000 InvalidAuthorizationRoleScope O nome da função que você inseriu não corresponde aos nomes de função existentes. Examine o nome da função quanto a erros de digitação e tente novamente.
8001 UserNotFound O nome de usuário que você inseriu não corresponde aos nomes de usuário existentes. Examine o nome quanto a erros de digitação e tente novamente.
8005 UserNotFoundInAAD O nome de usuário que você inseriu não corresponde aos nomes de usuário existentes. Examine o nome quanto a erros de digitação e tente novamente.
8008 TenantConsentRequired Siga as instruções aqui para dar consentimento para o locatário.

Códigos de erro de conexão externa

Código numérico Código do erro Solução sugerida
-2147467259 ConnectionFailedAdErrorNoSuchMember O usuário não é membro do Active Directory. Siga as instruções no Centro Administrativo do Active Directory para adicioná-lo.
-2147467259 ConnectionFailedAdTrustedRelationshipFailure O host da sessão não entrou corretamente no Active Directory.
-2146233088 ConnectionFailedUserHasValidSessionButRdshIsUnhealthy As conexões falharam porque o host da sessão não está disponível. Verifique a integridade do host da sessão.
-2146233088 ConnectionFailedClientDisconnect Se você observar esse erro com frequência, verifique se o computador do usuário está conectado à rede.
-2146233088 ConnectionFailedNoHealthyRdshAvailable A sessão à qual o usuário do host tentou se conectar não está íntegra. Depurar a máquina virtual.
-2146233088 ConnectionFailedUserNotAuthorized O usuário não tem permissão para acessar a área de trabalho ou o aplicativo publicado. O erro pode aparecer depois que o administrador removeu os recursos publicados. Peça ao usuário para atualizar o feed no aplicativo da Área de Trabalho Remota.
2 FileNotFound O aplicativo que o usuário tentou acessar foi instalado incorretamente ou definido como um caminho incorreto.
3 InvalidCredentials O nome de usuário ou a senha digitada pelo usuário não corresponde aos nomes de usuário ou senhas existentes. Examine as credenciais quanto a erros de digitação e tente novamente.
8 ConnectionBroken A conexão entre o cliente e o gateway ou o servidor caiu. Nenhuma ação necessária, a menos que isso ocorra inesperadamente.
14 UnexpectedNetworkDisconnect A conexão com a rede caiu. Peça ao usuário para se conectar novamente.
24 ReverseConnectFailed A máquina virtual do host não tem uma linha de visão direta para o gateway de área de trabalho remota. Verifique se o endereço IP do gateway pode ser resolvido.
1322 ConnectionFailedNoMappingOfSIDinAD O usuário não é membro do Active Directory. Siga as instruções no Centro Administrativo do Active Directory para adicioná-lo.

Próximas etapas

Para saber mais sobre as funções na Área de Trabalho Virtual do Azure, confira Ambiente da Área de Trabalho Virtual do Azure.

Para ver uma lista dos cmdlets do PowerShell disponíveis para a Área de Trabalho Virtual do Azure, confira a Referência do PowerShell.