Compartilhar via


O cliente RDS não pode se conectar ao servidor Host da Sessão da Área de Trabalho Remota depois que o endereço IP do servidor é alterado

Este artigo fornece uma solução para um problema em que o cliente RDS (Serviços de Área de Trabalho Remota) não pode se conectar ao servidor Host da Sessão da Área de Trabalho Remota (RD).

Número original do KB: 2844958

Importante

Este artigo contém informações sobre como modificar o Registro. Certifique-se de fazer backup do registro antes de modificá-lo. Certifique-se de saber como restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o Registro, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
322756 Como fazer o backup e a restauração do Registro no Windows

Sintomas

Considerando o seguinte cenário:

  • Você configura uma implantação padrão do RDS no Windows Server 2012. A implantação contém servidores de Host de Sessão de Área de Trabalho Remota, um servidor de Agente de Conexão de Área de Trabalho Remota e um servidor de Acesso via Web de Área de Trabalho Remota.
  • Você cria uma coleção de sessões que pode ser acessada por clientes RDS por meio do site do RD Web Access.
  • Os endereços IP de todos os servidores Host da Sessão da Área de Trabalho Remota na coleção de sessões são alterados.

Nesse cenário, os clientes RDS não podem se conectar à coleção de sessões e você recebe a seguinte mensagem de erro durante a conexão:

suas credenciais não funcionaram.

Causa

Esse problema ocorre devido a uma entrada de registro obsoleta na seguinte subchave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ClusterSettings

A SessionDirectoryRedirectionIP entrada do Registro armazena o endereço IP de um servidor Host da Sessão da Área de Trabalho Remota que foi atribuído quando a implantação do RDS foi criada. Embora o endereço IP do servidor Host da Sessão da Área de Trabalho Remota seja alterado, o endereço IP na configuração do Agente de Conexão da Área de Trabalho Remota não é atualizado. Portanto, os clientes RDS não podem se conectar à coleção de sessões.

Resolução

Aviso

Poderão ocorrer sérios problemas se você modificar o Registro incorretamente com o Editor do Registro ou outro método. Talvez seja necessária a reinstalação do sistema operacional. A Microsoft não garante que esses problemas possam ser solucionados. Modifique o Registro por sua conta e risco.

Para resolver esse problema, exclua a SessionDirectoryRedirectionIP entrada do Registro da seguinte subchave do Registro de cada servidor Host da Sessão da Área de Trabalho Remota na coleção de sessões:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ClusterSettings

Ou você pode executar o script do PowerShell a seguir. Esse script exclui a entrada do Registro de cada servidor Host da Sessão da Área de Trabalho Remota na implantação.

Import-Module RemoteDesktop

# Delete the Registry Key for all machine name specified in $RemoteMachine
Function DeleteRegistryKey($RemoteMachine)
{
 $reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $RemoteMachine)

# connect to the needed key :  
 $regKey= $reg.OpenSubKey("System\\CurrentControlSet\\Control\\Terminal Server\\ClusterSettings", $true )

# and delete the SessionDirectoryRedirectionIP subkey, if it exists
 foreach ($key in $regKey.GetValueNames())
 { 
 if ($key -eq "SessionDirectoryRedirectionIP")
 {
 $regKey.DeleteValue($key)  
 Write-Host "Machine : "$RemoteMachine
 }
 }
}

# Get the list of collections on the machine
$RdSessionCollections = Get-RDSessionCollection  

if ($RdSessioncollections -eq $null)
{
 Write-Host "No RDSH Session Collections"
 return
}

foreach ($SessionCollection in $RdSessionCollections)
{
 Write-Host "Collection Name : " $SessionCollection.CollectionName

# get list of RDSH Servers in the collection
 $RdSessionHosts = Get-SessionHost -CollectionName $SessionCollection.CollectionName
 foreach ($SessionHost in $RdSessionHosts)
 {
 Write-Host "SessionHost : "$SessionHost.SessionHost

# Delete the regkey on this server
 DeleteRegistryKey($SessionHost.SessionHost)
 }
}