Windows Remote-Desktop-Service über SSH aktivieren

von Thomas Bahn,
assono GmbH, Standort Kiel,

Wenn man einen SSH-Dienst auf einem Windows-Server installiert hat und sich mit diesem verbindet, kann man einen Tunnel für beliebige TCP-Ports aufmachen und so z. B. VNC oder Remote-Desktop-Verbindung nutzen. Gerade die Kombination aus SSH-Dienst und Remote-Desktop-Verbindung (mstsc) nutze ich gerne für Fernwartungszwecke.

Aus Sicherheitsgründen wird der Remote-Desktop-Dienst (TermService) inzwischen deaktiviert ausgeliefert. Was also tun, wenn man ihn nur mittels der SSH-Konsole aktivieren möchte?

Erster Versuch: Dienst starten:

$ net start TermService
Remotedesktopdienste wird gestartet.
Remotedesktopdienste wurde erfolgreich gestartet.

Das müsste ja eigentlich reichen, aber tut es leider doch nicht. Mit netstat kann man leicht nachprüfen, dass kein Prozess am TCP-Port 3389 horcht:

$ netstat -an -p tcp

Aktive Verbindungen

  Proto  Lokale Adresse         Remoteadresse          Status
{...}
  TCP    0.0.0.0:1352           0.0.0.0:0              ABHÖREN
  TCP    0.0.0.0:5001           0.0.0.0:0              ABHÖREN
{...}

Eine Recherche ergab, dass man in der Windows Registry den Wert fDenyTSConnections unter HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server von 1 auf 0 ändern muss. Dafür kann man das reg-Kommando nutzen.

Zuerst den aktuellen Wert ausgeben:

$ reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
    fDenyTSConnections    REG_DWORD    0x1

Dann ändern in 0:

$ reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0x0
Der Wert fDenyTSConnections ist vorhanden. Überschreiben (J/N)? j
Der Vorgang wurde erfolgreich beendet.

Und kontrollieren:

$ reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
    fDenyTSConnections    REG_DWORD    0x0

Gut, jetzt also den TermService wieder beenden:

$ sc stop TermService
[SC] ControlService FEHLER 1051:

Ein Stoppzeichen wurde an einen Dienst gesendet, von dem andere Dienste abhängen.

Jetzt noch einmal mit net stop:

$ net stop TermService
Die folgenden Dienste hängen vom Dienst Remotedesktopdienste ab.
Das Beenden des Dienstes Remotedesktopdienste beendet auch diese Dienste.

   Anschlussumleitung für Remotedesktopdienst im Benutzermodus

Möchten Sie diesen Vorgang fortsetzen? (J/N) [N]:
Es wurde keine gültige Antwort gegeben.

Leider überspringt er die Nachfrage immer mit dem Vorgabewert N(ein). Welcher Dienst ist das denn genau?

$ sc query

{...}
SERVICE_NAME: UmRdpService
DISPLAY_NAME: Anschlussumleitung für Remotedesktopdienst im Benutzermodus
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
{...}

Gut, dann also Schluss mit UmRdpService:

$ sc stop UmRdpService

SERVICE_NAME: UmRdpService
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Und endlich auch mit TermService:

$ sc stop TermService

SERVICE_NAME: termservice
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x1
        WAIT_HINT          : 0xea60

Jetzt noch einmal den Dienst starten:

$ net start termservice
Remotedesktopdienste wird gestartet.
Remotedesktopdienste wurde erfolgreich gestartet.

Und kontrollieren:

$ netstat -an -p tcp

Aktive Verbindungen

  Proto  Lokale Adresse         Remoteadresse          Status
{...}
  TCP    0.0.0.0:3389           0.0.0.0:0              ABHÖREN
{...}

Jetzt funktioniert die Remote-Desktop-Verbindung endlich - und wenn ich nicht vergessen hätte, warum ich überhaupt auf den Server wollte, könnte ich es sicherlich tun...

Quelle: "Remote Desktop remote aktivieren", Siegfried Seifert, MCSEboard.de
http://www.serverhowto.de/Remote-Desktop-remote-aktivieren.227.0.html

Fachbeitrag Administration

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de