Le client RDS ne peut pas se connecter au serveur hôte de session Bureau à distance après la modification de l’adresse IP du serveur

Cet article fournit une solution à un problème où le client des services Bureau à distance (RDS) ne peut pas se connecter au serveur hôte de session Bureau à distance .

S’applique à : Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 2844958

Importante

Cet article contient des informations sur la modification du Registre. Avant de modifier le Registre, pensez à le sauvegarder et assurez-vous que vous savez le restaurer en cas de problème. Pour plus d’informations sur la sauvegarde, la restauration et la modification du Registre, cliquez sur le numéro ci-dessous pour afficher l’article dans la Base de connaissances Microsoft :
322756 Comment sauvegarder et restaurer le Registre dans Windows

Symptômes

Compte tenu du scénario suivant :

  • Vous configurez un déploiement standard des services Bureau à distance dans Windows Server 2012. Le déploiement contient des serveurs hôtes de session Bureau à distance, un serveur Broker pour les connexions Bureau à distance et un serveur d’accès Web Bureau à distance.
  • Vous créez une collection de sessions accessible par les clients RDS via le site web d’accès aux services Bureau à distance.
  • Les adresses IP de tous les serveurs hôtes de session Bureau à distance dans la collection de sessions sont modifiées.

Dans ce scénario, les clients RDS ne peuvent pas se connecter à la collection de sessions et vous recevez le message d’erreur suivant pendant la connexion :

Vos informations d’identification n’ont pas fonctionné.

Cause

Ce problème se produit en raison d’une entrée de Registre obsolète dans la sous-clé suivante :

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

L’entrée SessionDirectoryRedirectionIP de Registre stocke l’adresse IP d’un serveur hôte de session Bureau à distance qui a été affecté lors de la création du déploiement des services Bureau à distance. Bien que l’adresse IP du serveur hôte de session Bureau à distance soit modifiée, l’adresse IP du paramètre Broker pour les connexions Bureau à distance n’est pas mise à jour. Par conséquent, les clients RDS ne peuvent pas se connecter à la collection de sessions.

Résolution

Avertissement

De graves problèmes peuvent se produire si vous vous trompez en modifiant le Registre à l’aide de l’Éditeur du Registre ou toute autre méthode. Vous risquez même de devoir réinstaller le système d’exploitation. Microsoft ne peut pas garantir que ces problèmes puissent être résolus. Vous assumez l’ensemble des risques liés à la modification du Registre.

Pour résoudre ce problème, supprimez l’entrée SessionDirectoryRedirectionIP de Registre de la sous-clé de Registre suivante de chaque serveur hôte de session Bureau à distance dans la collection de sessions :

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

Vous pouvez également exécuter le script PowerShell suivant. Ce script supprime l’entrée de Registre de chaque serveur hôte de session Bureau à distance dans le déploiement.

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