Freigeben über


Behandeln von RDP-Verbindungsfehlern bei virtuellen Azure-Computern anhand der Ereignis-ID

Gilt für: ✔️ Windows-VMs

Dieser Artikel erläutert die Verwendung von Ereignis-IDs zum Behandeln von Problemen, die eine RDP-Verbindung (Remotedesktopprotokoll) mit einem virtuellen Azure-Computer (VM) verhindern.

Problembeschreibung

Sie versuchen, eine RDP-Verbindung (Remotedesktopprotokoll) zum Herstellen einer Verbindung mit einer Azure-VM zu verwenden. Nach dem Eingeben Ihrer Anmeldeinformationen tritt ein Verbindungsfehler auf, und Sie empfangen die folgende Fehlermeldung:

Dieser Computer kann keine Verbindung mit dem Remotecomputer herstellen. Versuchen Sie noch einmal, die Verbindung herzustellen, und wenden Sie sich an den Besitzer des Remotecomputers oder an Ihren Netzwerkadministrator, wenn das Problem weiterhin besteht.

Um dieses Problem zu behandeln, überprüfen Sie die Ereignisprotokolle auf der VM, und beziehen Sie sich dann auf die im Folgenden beschriebenen Szenarien.

Vor Beginn der Problembehandlung

Erstellen einer Momentaufnahme für die Sicherung

Wenn Sie eine Momentaufnahme für die Sicherung erstellen möchten, führen Sie die unter Erstellen einer Momentaufnahme eines Datenträgers beschriebenen Schritte aus.

Herstellen einer Remoteverbindung mit dem virtuellen Computer

Um eine Remoteverbindung mit der VM herzustellen, verwenden Sie eine der in How to use remote tools to troubleshoot Azure VM issues (Verwenden von Remotetools zur Behandlung von Azure-VM-Problemen) beschriebenen Methoden.

Szenario 1

Ereignisprotokolle

Führen Sie in einer CMD-Instanz die folgenden Befehle aus, um zu überprüfen, ob innerhalb der letzten 24 Stunden das Ereignis 1058 oder 1057 im Systemprotokoll erfasst wurde:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1058 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Microsoft-Windows-TerminalServices-RemoteConnectionManager'] and EventID=1057 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Protokollname: System
Quelle: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Datum: Zeit
Ereignis-ID: 1058
Vorgangskategorie: Keine
Ebene: Fehler
Schlüsselwörter: Klassisch
Benutzer: N/A
Computer: Computer
Beschreibung: Der RD-Sitzungshostserver konnte das abgelaufene selbstsignierte Zertifikat, das für die RD-Sitzungshostserver-Authentifizierung für TLS-Verbindungen verwendet wird, nicht ersetzen. Der relevante Statuscode war „Zugriff verweigert“.

Protokollname: System
Quelle: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Datum: Zeit
Ereignis-ID: 1058
Vorgangskategorie: Keine
Ebene: Fehler
Schlüsselwörter: Klassisch
Benutzer: N/A
Computer: Computer
Beschreibung: Rd Session Host Server has failed to create a new self-signed certificate to be used for RD Session host server authentication on TLS connections, the relevant status code was object already exists.

Protokollname: System
Quelle: Microsoft-Windows-TerminalServices-RemoteConnectionManager
Datum: Zeit
Ereignis-ID: 1057
Vorgangskategorie: Keine
Ebene: Fehler
Schlüsselwörter: Klassisch
Benutzer: N/A
Computer: Computer
Beschreibung: Der RD-Sitzungshostserver konnte kein neues selbstsigniertes Zertifikat erstellen, das für die RD-Sitzungshostserverauthentifizierung für TLS-Verbindungen verwendet werden soll. Der relevante Statuscode war „Keyset nicht vorhanden“.

Sie können außerdem nach den SCHANNEL-Fehlerereignissen 36872 und 36870 suchen, indem Sie die folgenden Befehle ausführen:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36870 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36872 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Protokollname: System
Quelle: Schannel
Datum:
Ereignis-ID: 36870
Vorgangskategorie: Keine
Ebene: Fehler
Schlüsselwörter:
Benutzer: SYSTEM
Computer: Computer
Beschreibung: Beim Versuch, auf den privaten SCHLÜSSEL des TLS-Servers zuzugreifen, ist ein schwerwiegender Fehler aufgetreten. Der vom Kryptografiemodul zurückgegebene Fehlercode ist 0x8009030D.
Der interne Fehlerstatus ist 10001.

Ursache

Dieses Problem tritt auf, weil kein Zugriff auf die lokalen RSA-Verschlüsselungsschlüssel im Ordner „MachineKeys“ auf der VM möglich ist. Dieses Problem kann aus einem der folgenden Gründe auftreten:

  1. Falsche Konfiguration der Berechtigungen für den Machinekeys-Ordner oder die RSA-Dateien.

  2. Beschädigter oder fehlender RSA-Schlüssel.

Lösung

Um dieses Problem zu behandeln, müssen Sie mithilfe dieser Schritte die ordnungsgemäßen Berechtigungen für das RDP-Zertifikat festlegen.

Erteilen der Berechtigung für den MachineKeys-Ordner

  1. Erstellen Sie ein Skript mit dem folgenden Inhalt:

    remove-module psreadline 
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\BeforeScript_permissions.txt
    takeown /f "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /a /r
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\System:(F)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "NT AUTHORITY\NETWORK SERVICE:(R)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c /grant "BUILTIN\Administrators:(F)"
    icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t /c > c:\temp\AfterScript_permissions.txt
    Restart-Service TermService -Force
    
  2. Führen Sie dieses Skript aus, um die Berechtigungen des MachineKey-Ordners zurückzusetzen und die RSA-Dateien auf die Standardwerte zurückzusetzen.

  3. Versuchen Sie erneut, auf den virtuellen Computer zuzugreifen.

Nachdem das Skript ausgeführt wurde, können Sie die folgenden Dateien überprüfen, bei denen Berechtigungsprobleme auftreten:

  • c:\temp\BeforeScript_permissions.txt
  • c:\temp\AfterScript_permissions.txt

Erneuern eines selbstsignierten RDP-Zertifikats

Wenn das Problem weiterhin besteht, führen Sie das folgende Skript aus, um sicherzustellen, dass das selbstsignierte RDP-Zertifikat erneuert wurde:

Import-Module PKI
Set-Location Cert:\LocalMachine
$RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint)
Remove-Item -Path $RdpCertThumbprint
Stop-Service -Name "SessionEnv"
Start-Service -Name "SessionEnv"

Wenn Sie das Zertifikat nicht erneuern können, befolgen Sie diese Schritte, um das Zertifikat zu löschen:

  1. Öffnen Sie auf einer anderen VM im gleichen VNET das Feld Ausführen, geben Sie mmc ein, und drücken Sie dann OK.

  2. Wählen Sie im Datei-Menü Snap-In hinzufügen/entfernen aus.

  3. Wählen Sie in der Liste Verfügbare Snap-InsZertifikate und dann Hinzufügen aus.

  4. Wählen Sie Computerkonto und dann Weiter aus.

  5. Wählen Sie Anderer Computer aus, und fügen Sie dann die IP-Adresse der VM hinzu, bei der Probleme auftreten.

    Notiz

    Versuchen Sie, das interne Netzwerk zu verwenden, um die Nutzung einer virtuellen IP-Adresse zu vermeiden.

  6. Wählen Sie Beenden und dann OK.

    Screenshot der Option

  7. Erweitern Sie die Zertifikate, wechseln Sie zum Ordner „Remotedesktop\Zertifikate“, klicken Sie mit der rechten Maustaste auf das Zertifikat, und wählen Sie dann Löschen aus.

  8. Starten Sie den Remotedesktop-Konfigurationsdienst neu:

    net stop SessionEnv
    net start SessionEnv
    

    Notiz

    Wenn Sie an diesem Punkt den Speicher von der MMC aus aktualisieren, wird das Zertifikat wieder angezeigt.

Versuchen Sie noch einmal, mithilfe von RDP auf die VM zuzugreifen.

Aktualisieren des TSL/SSL-Zertifikats

Wenn Sie die VM für die Verwendung eines TLS/SSL-Zertifikats einrichten, führen Sie den folgenden Befehl aus, um den Fingerabdruck abzurufen. Überprüfen Sie dann, ob er mit dem Fingerabdruck des Zertifikats übereinstimmt:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

Falls nicht, ändern Sie den Fingerabdruck:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash /t REG_BINARY /d <CERTIFICATE THUMBPRINT>

Sie können außerdem versuchen, den Schlüssel zu löschen, so dass RDP das selbstsignierte Zertifikat für RDP verwendet:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash

Szenario 2

Ereignisprotokoll

Führen Sie in einer CMD-Instanz die folgenden Befehle aus, um zu überprüfen, ob innerhalb der letzten 24 Stunden das SCHANNEL-Fehlerereignis 36871 im Systemprotokoll erfasst wurde:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name='Schannel'] and EventID=36871 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Protokollname: System
Quelle: Schannel
Datum:
Ereignis-ID: 36871
Vorgangskategorie: Keine
Ebene: Fehler
Schlüsselwörter:
Benutzer: SYSTEM
Computer: Computer
Beschreibung: Schwerwiegender Fehler beim Erstellen von TLS-Server-Anmeldeinformationen. Der interne Fehlerstatus ist 10013.

Ursache

Dieses Problem wird durch Sicherheitsrichtlinien verursacht. Wenn ältere Versionen von TLS (z. B. 1.0) deaktiviert sind, tritt beim RDP-Zugriff ein Fehler auf.

Lösung

RDP verwendet TLS 1.0 als Standardprotokoll. Allerdings kann das Protokoll in TLS 1.1 geändert werden, das den neuen Standard darstellt.

Informationen zur Behandlung dieses Problems finden Sie unter Problembehandlung von Authentifizierungsfehlern bei der Verwendung von RDP für das Herstellen von Verbindungen mit Azure-VMs.

Szenario 3

Wenn Sie die Remotedesktop-Verbindungsbroker-Rolle auf der VM installiert haben, überprüfen Sie, ob innerhalb der letzten 24 Stunden Ereignis 2056 oder Ereignis 1296 aufgetreten sind. Führen Sie in einer CMD-Instanz die folgenden Befehle aus:

wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker '] and EventID=2056 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more
wevtutil qe system /c:1 /f:text /q:"Event[System[Provider[@Name=' Microsoft-Windows-TerminalServices-SessionBroker-Client '] and EventID=1296 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" | more

Protokollname: Microsoft-Windows-TerminalServices-SessionBroker/Operational
Quelle: Microsoft-Windows-TerminalServices-SessionBroker
Datum: Zeit
Ereignis-ID: 2056
Vorgangskategorie: (109)
Ebene: Fehler
Schlüsselwörter:
Benutzer: NETZWERKDIENST
Computer: FQDN des Computers
Beschreibung: Die Beschreibung für Ereignis-ID 2056 aus der Quelle Microsoft-Windows-TerminalServices-SessionBroker konnte nicht gefunden werden. Entweder ist die Komponente, die dieses Ereignis auslöst, auf Ihrem lokalen Computer nicht installiert, oder die Installation ist beschädigt. Sie können die Komponente auf dem lokalen Computer installieren oder reparieren.
Würde das Ereignis von einem anderen Computer stammen, hätten die Anzeigeinformationen zusammen mit dem Ereignis gespeichert werden müssen.
Die folgenden Informationen wurden in das Ereignis aufgenommen:
NULL
NULL
Fehler bei der Anmeldung bei der Datenbank.

Protokollname: Microsoft-Windows-TerminalServices-SessionBroker-Client/Operational
Quelle: Microsoft-Windows-TerminalServices-SessionBroker-Client
Datum: Zeit
Ereignis-ID: 1296
Vorgangskategorie: (104)
Ebene: Fehler
Schlüsselwörter:
Benutzer: NETZWERKDIENST
Computer: FQDN des Computers
Beschreibung: Die Beschreibung für Ereignis-ID 1296 aus der Quelle Microsoft-Windows-TerminalServices-SessionBroker-Client konnte nicht gefunden werden. Entweder ist die Komponente, die dieses Ereignis auslöst, auf Ihrem lokalen Computer nicht installiert, oder die Installation ist beschädigt. Sie können die Komponente auf dem lokalen Computer installieren oder reparieren. Würde das Ereignis von einem anderen Computer stammen, hätten die Anzeigeinformationen zusammen mit dem Ereignis gespeichert werden müssen. Die folgenden Informationen wurden in das Ereignis aufgenommen:
text
text
Der Remotedesktop-Verbindungsbroker ist nicht für RPC-Kommunikation bereit.

Ursache

Dieses Problem tritt auf, weil der Hostname des Remotedesktop-Verbindungsbrokers geändert wurde. Diese Änderung wird nicht unterstützt.

Für den Hostnamen bestehen Einträge und Abhängigkeiten in und mit der internen Windows-Datenbank, die für die Funktion der Remotedesktopdienst-Farm erforderlich sind. Das Ändern des Hostnamens nach dem Erstellen der Farm führt zu vielen Fehlern und kann die Funktion des Brokerservers beenden.

Lösung

Um dieses Problem zu lösen, müssen die Remotedesktop-Verbindungsbroker-Rolle und die interne Windows-Datenbank neu installiert werden.

Nächste Schritte

SChannel-Ereignisse

Schannel SSP – technische Übersicht

RDP Fails with Event ID 1058 & Event 36870 with Remote Desktop Session Host Certificate & SSL Communication (RDP-Fehler mit Ereignis-ID 1058 und Ereignis 36870 mit Remotedesktop-Sitzungshostzertifikat und SSL-Kommunikation)

Schannel 36872 oder Schannel 36870 auf einem Domänencontroller

Ereignis-ID 1058 – Remotedesktopdienste, Authentifizierung und Verschlüsselung

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.