Da es immer wieder Kommentare oder gar E-Mails zum Thema RDP Wrapper in Verbindung „geht nicht“ gibt, versuche ich mit diesem Beitrag eine Art zentrale Anlaufstelle (innerhalb dieses Blogs) dafür zu schaffen. Das bedeutet, wenn möglich soll der Beitrag weiter aktualisiert werden.
Zu Beginn ein wenig Historie und Hintergrund
Während RDP Wrapper beispielsweise unter Windows 7 lange Zeit ohne Updates auskam ist es bei Windows 10, aktuell allem voran bei 1809 leider ganz anders. Die Ursache ist dabei relativ einfach: Ändert Microsoft die „termsrv.dll“, das ist die Bibliothek die die Remotedesktopdienste realisiert, muss auch die „rdpwrap.ini“ des RDP Wrappers angepasst werden.
Zugegeben, leider kommen vom Macher des RDP Wrappers schon seit geraumer Zeit keine Updates mehr, daher nutzt es dann auch wenig wenn man die „update.bat“ ausführt, helfen tut dafür in der Regel die Community. Auf GitHub findet man unter Issues der Projektseite meist relativ schnell die notwendigen Änderungen, die man selbst per Hand einpflegen darf.
Als Alternative zum Aktualisieren der „rdpwrap.ini“ kann man ein Downgrade/Rollback der „termsrv.dll“ durchführen, damit der RDP Wrapper wieder läuft. Erwähnt wurde dies z.B. bereits hier:
Windows: Wenn RDP Wrapper nicht mehr funktioniert, ein Downgrade der termsrv.dll durchführen
Als auch in den Kommentaren zu
Windows Vista, 7, 8.x und 10 mit dem RDP Wrapper zum Terminalserver machen
Grundsätzlich muss man allerdings festhalten, das Microsoft jederzeit durch entsprechende Änderungen den RDP Wrapper (oder andere Lösungen dieser Art) unbrauchbar machen kann oder gar gänzlich diese „Option“ verbaut. Ferner stören sich zudem so manche Virenscanner am RDP Wrapper, das ist sogar verständlich, können solche Tools positiv wie negativ verwendet werden.
Zu Empfehlen vor dem Einspielen von Windows Updates, nicht nur wegen dem RDP Wrapper, ist ein Backup anzulegen oder z.B. in einer virtuellen Maschine zunächst zu prüfen, ob alles nach der Installation der Updates noch so läuft, wie es soll.
Das häufigste Problem lösen: Nach Windows Update funktioniert der RDP Wrapper nicht mehr, die „RDPconf.exe“ meldet „unsupported“.
I.d.R. habe ich fast ausschließlich mit Windows 7, 8 und 10 in der Pro-Edition zu tun, von daher kann ich zu den Home-Editionen nicht allzuviel beitragen. Ferner sind die allermeisten Systeme mit 64-bit-Windows bestückt, 32-bit wäre damit ebenfalls quasi raus. Ferner verwende ich keine Test- oder Vorabversionen von zukünftigen Windows 10 Builds. Was den RDP Wrapper betrifft greife ich immer zur ZIP-Datei, die MSI habe ich noch nie verwendet (oder es ist solange her, das ich mich nicht mehr daran erinnern kann).
Meldet die „RDPconf.exe“ bei „Listener state“ ein „[not supported]“ liegt das an einer Version der „termsrv.dll“ die bislang nicht unterstützt wird und folglich ein Update der „rdpwrap.ini“ notwendig ist.
„rdpwrap.ini“ aktualisieren
Die „rdpwrap.ini“ findet sich unter „C:\Program Files\RDP Wrapper“. Diese kann mit einem einfachen Text-Editor wie dem Windows-Bordmittel Notepad oder externen Tools wie z.B. Notepad++ editiert werden. Es werden erhöhte Rechte benötigt.
In der Regel müssen nur weitere Zeilen für die neu zu unterstützende „termsrv.dll“-Version am Ende der Datei hinzugefügt werden.
Wichtig: Ganz am Ende der „rdpwrap.ini“ muss eine Leerzeile sein! Andernfalls funktioniert es nicht (mehr).
Damit die Änderung direkt an der Datei vorgenommen werden kann, muss der Dienst „Remotedesktopdienste“ beendet sein. Gleiches gilt, wenn man die Datei ersetzen möchte.
Wichtig: Führt man diese Änderung bereits über eine RDP-Verbindung durch und es geht irgendetwas schief, sperrt man sich aus! Ein Plan B um z.B. mittels VNC, TeamViewer, PsExec oder direkt an der Konsole Zugriff zu haben ist also wärmstens zu empfehlen!
Anbei nun ein Beispiel von der Installation bis zum Updaten des RDP Wrappers:
System: Windows 10 Pro – 1809 – Build 17763.348
Die Version der „termsrv.dll“ lautet: 10.0.17763.292
Ist der RDP Wrapper noch nicht installiert, sieht die Ausgabe von „RDPconfig.exe“ so aus:
Nach dem Ausführen des „install.bat“ sieht es so aus (daran ändert auch das Ausführen der „update.bat“ nichts):
Das wäre soweit der klassische Fall, das eine „termsrv.dll“-Version nicht unterstützt wird. Für die angezeigte Version findet sich die Lösung unter
Add support for build 10.0.17763.292 #645
in der Antwort von RoosterIllusion und von ditchmagnet. Letzerer bietet sogar eine fertige „rdpwrap.ini“ zum Download an. Das Archiv entpacken, den Dienst „Remotedesktopdienste“ beenden, die Datei unter „C:\Program Files\RDP Wrapper“ ersetzen und den Dienst wieder starten.
Das Ergebnis von „RDPconf.exe“ nach diesem Eingriff sieht so aus:
Damit sind die grundsätzlichen Voraussetzungen für den (Weiter-)Betrieb des „Quasi-Terminalserver“ geschaffen.
Vergleich der original und der aktualisierten „rdpwrap.ini“
Mit Tools wie WinMerge lässt sich leicht ermitteln, was es für Differenzen zwischen zwei Dateien gibt. Nachfolgend als Screenshot der Vergleich zwischen Original (links) und Fälschung ähm Update (rechts):
![]()
Letztlich wurden für diese Version nur die folgenden Zeilen eingefügt:
[10.0.17763.292]
; Patch CEnforcementCore::GetInstanceOfTSLicense
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=AFAD4
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=77A11
LocalOnlyCode.x64=jmpshort
; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled
SingleUserPatch.x86=1
SingleUserOffset.x86=4D665
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=1322C
SingleUserCode.x64=Zero
; Patch CDefPolicy::Query
DefPolicyPatch.x86=1
DefPolicyOffset.x86=4BE69
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=17F45
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
; Hook CSLQuery::Initialize
SLInitHook.x86=1
SLInitOffset.x86=5B18A
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=1ABFC
SLInitFunc.x64=New_CSLQuery_Initialize
[10.0.17763.292-SLInit]
bInitialized.x86 =CD798
bServerSku.x86 =CD79C
lMaxUserSessions.x86 =CD7A0
bAppServerAllowed.x86 =CD7A8
bRemoteConnAllowed.x86=CD7AC
bMultimonAllowed.x86 =CD7B0
ulMaxDebugSessions.x86=CD7B4
bFUSEnabled.x86 =CD7B8
bInitialized.x64 =ECAB0
bServerSku.x64 =ECAB4
lMaxUserSessions.x64 =ECAB8
bAppServerAllowed.x64 =ECAC0
bRemoteConnAllowed.x64=ECAC4
bMultimonAllowed.x64 =ECAC8
ulMaxDebugSessions.x64=ECACC
bFUSEnabled.x64 =ECAD0
Zugriffsrecht erteilen
Damit Nicht-Administratoren via Remotedesktop zugreifen dürfen, müssen diese Mitglied der Gruppe „Remotedesktopbenutzer“ sein. Es gibt mehrere Wege die Benutzer dieser Gruppe zuzuweisen:
Der Klassiker wäre:
Computerverwaltung - System - Lokale Benutzer und Gruppen - Gruppen
In der Eingabeaufforderung mit
net localgroup Remotedesktopbenutzer <Benutzername> /add
Weitere Probleme:
Firewall
RDP Wrapper richtet bei der Installation eine Regel in der Windows-Firewall ein, die den Zugriff zulässt. Verwendet man eine Firewall von einem Drittanbieter, so müssen dort ggf. die Ports 3389/tcp und 3389/udp freigegeben werden.
Nach der Deinstallation von RDP Wrapper funktioniert RDP überhaupt nicht mehr
Bei der Deinstallation wird RDP deaktiviert, man kann es ganz einfach wieder aktivieren.
Windows 10 Kuriositäten
Ob RDP aktiv ist oder nicht, sollte man einfach via Einstellungen oder Systemsteuerung klären können. Bei meinem Testsystem fiel mir folgendes auf:
Hinweis am Rande: RDP Wrapper ist installiert und funktioniert. Warum unter „Einstellungen – System – Remotedesktop“ allerdings Remotedesktop als „Aus“ angezeigt wird und unter „Systemsteuerung – System – Remoteeinstellungen“ als aktiviert bleibt offen.
Wenn man Hilfe benötigt
Grundsätzlich muss man folgende Angaben parat haben:
- Windows-Version und -Edition, Beispiel: Windows 10 Pro – 1809, idealerweise mit Build-Nummer
- Version der „termsrv.dll“ (kann via „RDPconf.exe“ ermittelt werden)
- Status des RDP Wrapper (gemeint ist das was die „RDPconf.exe“ anzeigt)
- Genaue Fehlerbeschreibung und zwar so, das man das Vorgehen reproduzieren kann! Einfach zu schreiben „geht ned“ hilft nicht.
Die erste Anlaufstelle bei Schwierigkeiten ist die „RDPconf.exe“, steht da schon ein „unsupported“, „not installed“, „stopped“, „not listening“ o.ä. ist das schonmal ungut. Als nächstes lohnt ein Blick auf die Issues-Seite des RDP Wrapper.