Der RDS-Client kann keine Verbindung mit dem RD-Sitzungshostserver herstellen, nachdem die IP-Adresse des Servers geändert wurde.

Dieser Artikel bietet eine Lösung für ein Problem, bei dem der RDS-Client (Remotedesktopdienste) keine Verbindung mit dem Remotedesktop-Sitzungshostserver herstellen kann.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 2844958

Wichtig

Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Sie sollten eine Sicherungskopie der Registrierung erstellen, bevor Sie die Registrierung bearbeiten. Sie müssen wissen, wie die Registrierung wiederhergestellt werden kann, wenn ein Problem auftritt. Weitere Informationen zum Sichern, Wiederherstellen und Ändern der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756 Sichern und Wiederherstellen der Registrierung in Windows

Symptome

Betrachten Sie das folgende Szenario:

  • Sie richten eine Standardbereitstellung von RDS in Windows Server 2012 ein. Die Bereitstellung enthält RD-Sitzungshostserver, einen RD-Verbindungsbrokerserver und einen Remotedesktop-Webzugriffsserver.
  • Sie erstellen eine Sitzungssammlung, auf die RDS-Clients über die Web Access-Website für Remotedesktop zugreifen können.
  • Die IP-Adressen aller RD-Sitzungshostserver in der Sitzungssammlung werden geändert.

In diesem Szenario können die RDS-Clients keine Verbindung mit der Sitzungssammlung herstellen, und Sie erhalten während der Verbindung die folgende Fehlermeldung:

Ihre Anmeldeinformationen haben nicht funktioniert.

Ursache

Dieses Problem tritt aufgrund eines veralteten Registrierungseintrags im folgenden Unterschlüssel auf:

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

Der SessionDirectoryRedirectionIP Registrierungseintrag speichert die IP-Adresse eines RD-Sitzungshostservers, der beim Erstellen der RDS-Bereitstellung zugewiesen wurde. Obwohl die IP-Adresse des RD-Sitzungshostservers geändert wird, wird die IP-Adresse in der Einstellung für den RD-Verbindungsbroker nicht aktualisiert. RDS-Clients können also keine Verbindung mit der Sitzungssammlung herstellen.

Lösung

Warnung

Schwerwiegende Probleme können auftreten, wenn die Registrierung mit dem Registrierungs-Editor oder einer anderen Methode unsachgemäß bearbeitet wird. Aufgrund dieser Probleme kann eine Neuinstallation des Betriebssystems erforderlich sein. Microsoft gibt keinerlei Garantien dafür ab, dass diese Probleme behoben werden können. Das Ändern der Registrierung erfolgt auf eigenes Risiko.

Um dieses Problem zu beheben, löschen Sie den SessionDirectoryRedirectionIP Registrierungseintrag des folgenden Registrierungsunterschlüssels von jedem RD-Sitzungshostserver in der Sitzungssammlung:

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

Alternativ können Sie das folgende PowerShell-Skript ausführen. Dieses Skript löscht den Registrierungseintrag von jedem RD-Sitzungshostserver in der Bereitstellung.

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