Die Remotedesktopserverfarm ist über DirectAccess (einzel-/multisite) nicht verfügbar.

Dieser Artikel hilft bei der Behebung eines Problems, das dazu führt, dass eine Remotedesktopserverfarm (RDS) in einer Windows Server 2008-Umgebung nicht verfügbar ist.

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

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verfügen über eine DirectAccess-Umgebung (zwei Netzwerkadapter auf Edge, zwei Netzwerkadapter hinter Edge oder ein einzelner Netzwerkadapter hinter Edge), einschließlich Tunnelerzwingung.
  • Sie verfügen über Benutzer, die über den DirectAccess-Tunnel eine Verbindung mit einer Remotedesktopdienste-Bereitstellung aus einem externen Netzwerk herstellen.
  • Die Sitzungsumleitung wird in der RDS-Farm über die Rolle Verbindungsbroker aktiviert.

In diesem Szenario schlagen alle umgeleiteten RDS-Verbindungen fehl.

Ursache

Das Problem tritt auf, weil die Rollen und Dienste der Remotedesktopdienste nicht IPv6-fähig sind. Wenn der Client versucht, eine Verbindung mit der RDS-Bereitstellung herzustellen, gibt der Verbindungsbroker ein Umleitungspaket zurück, das die IP-Adresse des RDSH-Endpunkts enthält, an die der Client umgeleitet wird. Wenn den RDSH-Servern nur eine IPv4-Adresse zugewiesen ist, gibt der Verbindungsbroker nur diese IPv4-Adresse zurück. Daher versuchen Clients, über den DA-Tunnel eine Verbindung mit der IPv4-Adresse herzustellen, und dies schlägt fehl.

Lösung

Voraussetzungen

Für Windows 7- und Windows 8.1-Clients muss das folgende Update installiert sein, um über eine DA-Verbindung eine Verbindung mit RDP herzustellen. Dieses Update behebt ein Problem, bei dem der Client nicht versucht, eine Verbindung mit der IPv6-Adresse herzustellen, wenn eine Verbindung mit der IPv4-Adresse fehlschlägt:

Windows 8.1 oder Windows 7 kann keine Verbindung über DirectAccess mit einer Remotedesktop-Sitzungshost-Serverfarm herstellen.

Um das Problem zu beheben, müssen IPv6-IP-Adressen aktiviert und angewendet werden, und das interne Netzwerk muss IPv6-Routing können. Verwenden Sie eine der folgenden Methoden, um diese Funktionalität zu aktivieren:

  • Aktivieren und verwenden Sie einen ISATAP-Adapter auf den Remotedesktop-Sitzungshostservern. Beachten Sie, dass diese Methode nur mit einer einzelnen Standort da-Bereitstellung unterstützt wird. Die Verwendung eines ISATAP-Adapters in Umgebungen, die eine Da-Bereitstellung mit mehreren Standorten enthalten, wird weder empfohlen noch unterstützt.
  • Wenden Sie die Methode an, die im Abschnitt "Problemumgehung" beschrieben wird.

Weitere Informationen

Weitere DA-bezogene Fehlerbehebungen finden Sie unter Empfohlene Hotfixes und Updates für Windows Server 2012 DirectAccess und Windows Server 2012 R2 DirectAccess.

Problemumgehung

Gehen Sie folgendermaßen vor, um dieses Problem zu umgehen:

  1. Führen Sie an einer administrativen PowerShell-Eingabeaufforderung auf dem DA-Server den folgenden Befehl aus:

    Get-NetNatTransitionConfiguration
    

    Hinweis

    Notieren Sie sich das Präfix (in der Regel ist darin :7777:: eingebettet).

  2. Geben Sie das Präfix entsprechend Ihrer Version von Windows Server in das folgende Skript ein. Fügen Sie bei mehreren DA-Bereitstellungen jedes Suffix durch ein Komma (,) getrennt hinzu. Außerdem sind die Anführungszeichen ("") erforderlich.

    Für Windows Server 2012 und höhere Versionen

    $prefix = ""
    $add = Get-NetIPAddress -AddressFamily IPv4 -Type Unicast -PrefixOrigin Manual
    foreach ($a in $add)
    {
    
    
    $n = ($a.IPAddress).Split(".")
    Clear-Variable c -ErrorAction SilentlyContinue
    $c;
    foreach($num in $n)
    {if ($c.Length -eq 4)
    {$c = $c + ":"
    }
    $c = $c + ("{0:X2}" -f [int]$num)
    }
    $ip = $prefix + $c;
    New-NetIPAddress -IPAddress $ip -InterfaceAlias $a.InterfaceAlias -AddressFamily IPv6 -PrefixLength 64 -Type Unicast
    }
    

    Für Windows Server 2008 R2

    $prefix = ""
    $addresses = get-wmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { ($_.IPEnabled -eq $true) } | Select-object IPAddress,InterfaceIndex
    
    Write-Host "Prefix: $prefix" -ForegroundColor Yellow
    
    foreach ($address in $addresses)
    {
    
    $a = $address.IPAddress[0];
    $idx = $address.InterfaceIndex;
    
    $n = $a.ToString().Split(".")
    foreach($num in $n)
    {
    if ($c.Length -eq 4)
    {
    $c = $c + ":"
    }
    $c = $c + ("{0:X2}" -f [int]$num)
    }
    $ip = $prefix + $c;
    Clear-Variable c;
    Write-Host "Adding DNS64 IP : $a == $ip " -ForegroundColor Green
    netsh int ipv6 add address $idx $ip
    }
    
  3. Führen Sie dieses Skript auf allen RDS-Servern aus. Das Skript übernimmt die statische IP-Adresse vom Netzwerkadapter, generiert eine NAT64-IPv6-Adresse und weist die Adresse dem Netzwerkadapter zu.

Datensammlung

Wenn Sie Unterstützung vom Microsoft-Support benötigen, empfehlen wir Ihnen, die Informationen zu sammeln, indem Sie die Schritte unter Sammeln von Informationen mithilfe von TSS für Fragen der Benutzerfreundlichkeit ausführen.