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)
}
}