Windows: Terminalserver „Marke Eigenbau“ inkl. RemoteApp mit Windows XP und Windows 7

Terminaldienste oder Remotedesktop-Dienste wie Sie mittlerweile heißen, sind eigentlich Features, die dem Windows Server vorbehalten sind. Seit der Beta-Version von Service Pack 2 für Windows XP besteht aber die Möglichkeit ein Client-Windows zum Terminalserver aufzubohren.

War bei Windows XP noch der Griff auf Beta-DLLs vom Service Pack 2 oder eine Dritt-Herstellerlösung notwendig, so kann man bei Windows 7 mit einem Patch den Remotedesktop-Dienst von einer auf mehrere Sessions erweitern. Mit zusätzlichen Registry-Einstellungen besteht zudem die Möglichkeit RemoteApps zu nutzen.

Erfolgreich getestet habe ich Windows XP Professional x86, Windows 7 Enterprise x64 (Evaluierungsversion) und Windows 7 Ultimate x64.

Bei Windows 7 Professional funktioniert RemoteApp nicht.

Ausser bei Windows XP Professional habe ich keine 32-bit Versionen getestet.

Windows Vista und die 32-bit Versionen von Windows 7 sollten aber auch funktionieren, sofern es sich mindestens um die Edition „Business“ (Vista) oder „Professional“ (XP, 7) handelt.

Windows 7 zum Terminalserver patchen

Als Erstes muss in den Systemeigenschaften des Computers auf der Registerkarte Remote im Abschnitt Remotedesktop Verbindungen zugelassen werden. Ferner müssen die Benutzer, die Verbindungen herstellen dürfen ausgewählt bzw. zur Gruppe der Remotedesktopbenutzer hinzugefügt werden.

Als Zweites benötigt man das Tool Universal Termserv.dll Patch. Dieses Tool herunterladen und ausführen. Anschließend auf Patch klicken. Einmal Neu starten und schon können sich mehr als nur ein Benutzer an Windows via Remote Desktop anmelden. Somit ist es jetzt schon möglich, Desktops für Benutzer zur Verfügung zu stellen.

Hinweis: Bei diesem Vorgang wird die Systemdatei Termserv.dll im Ordner „C:\Windows\System32“ verändert. Das Tool legt eine Kopie an. Allerdings sollte man zur Sicherheit noch eine zusätzliche Kopie anlegen. Ferner kann es vorkommen, das nach einem Windows Update das Tool erneut ausgeführt werden muss.

Persönliche Anmerkung: Das Systemdateien verändert werden, kennt man ja auch von anderen Tools und Software von Drittherstellern. Vorsichtshalber sollte man immer eine aktuelle Datensicherung haben, falls etwas schief geht. Das gilt nicht nur für solche „Spezialfälle“ wie hier, sondern auch wegen Windows Updates. Man weiß ja nie.

Troubleshooting: Unter XP muss ggf. die Datei „xp.reg“, unter Vista/7 die Datei „vista.reg“ per Doppelklick einmalig ausgeführt werden, um wichtige Registrierungseinstellungen zu setzen. Beide Dateien sind im Archiv des Patches zu finden.

RemoteApp konfigurieren

Wenn man keine vollständigen Desktops den Anwendern zur Verfügung stellen möchte, sondern nur einzelne Anwendungen, so bieten sich die Funktionalität von RemoteApp an. Hierbei wird lediglich ein einzelnes Programmfenster auf dem Client vom Terminalserver dargestellt. Die Anwendung verhält sich so, als würde sie lokal laufen.

Nachfolgend dient Notepad als Beispiel.

Um RemoteApp zu aktivieren muss folgende Änderung an der Registrierung vorgenommen werden:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList den Eintrag fDisabledAllowList auf den Wert 1 setzen.

Für jede RemoteApp muss ein Schlüssel mit dem Namen und Pfad angelegt werden:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\Notepad

Zeichenfolge namens „Name“ und Wert „Notepad“.

Zeichenfolge namens „Path“ und dem Wert „C:\Windows\System32\notepad.exe.

Bei Windows XP Professional muss zusätzlich dieses Update installiert werden.

Bei Windows Vista muss zusätzlich dieses Update installiert werden. Ferner muss SP1 installiert sein.

In der *.rdp-Datei muss folgendes eingetragen werden:

remoteapplicationmode:i:1

remoteapplicationprogram:s:Notepad <- Hier den Namen der RemoteApp eingeben, wie in der Registrierung angeben.

disableremoteappcapscheck:i:1

alternate shell:s:rdpinit.exe

shell working directory:s:

Rechtliches

Für all‘ diejenigen die jetzt gleich wieder Bemängeln, das die EULA von Microsoft die Verwendung von einem Client-Windows als Terminalserver nicht gestattet, sei gesagt, das ich das in der Vergangenheit bereits zwei mal mit der Microsoft Geschäftskunden-Betreuung abgeklärt habe. Die Sachlage dabei ist sehr einfach. Man benötigt folgende Lizenzen von Windows:

1x Windows in der Edition, die als Terminalserver verwendet wird und zusätzlich pro Benutzer eine weitere exakt gleiche Edition

Beispiel: Man hat einen Terminalserver mit fünf Benutzer so benötigt man eine Windows-Lizenz für den Terminalserver und zusätzlich fünf weitere identischen Windows-Lizenzen für die Benutzer. Macht in der Summe sechs identische Windows-Lizenzen.

Und wenn man mal darüber nachdenkt, sollte jedem auch klar sein, wenn Microsoft etwas dagegen hat, würden Sie gegen die entsprechenden Hersteller vorgehen.

Das Betriebssystem des Terminalserver-Clients ist im übrigen egal. Es spielt keine Rolle ob Windows, Linux, Mac OS etc. läuft.

Fazit

Natürlich kann ein solcher Terminalserver „Marke Eigenbau“ funktional nicht mit einem echten Terminalserver mithalten, aber dennoch bieten solche Lösungen interessante und vor allem kostengünstige Möglichkeiten.

Paart man diese Lösung noch mit Stunnel, SSH-Tunnel oder einem VPN, so kann man einfach und sicher auch über das Internet eine Verbindung zum Terminalserver aufbauen.

Links

Remote Desktop Applications ohne Terminal-Server-Lizenzen nutzen in Windows 7, Vista SP1+ or Windows XP SP3

How to enable RemoteApp (via RDP 7.0) within VirtualBox or VMWare running Windows 7, Vista SP1+ or Windows XP SP3

Herstellerliste

IPConsult BV XP Unlimited

ThinSoft WinConnect Server

Thinstuff Terminal Server

TSplus

81 Gedanken zu „Windows: Terminalserver „Marke Eigenbau“ inkl. RemoteApp mit Windows XP und Windows 7

  1. Wie gehst du denn vor?
    Ich öffne meistens den RDC, mache alle Einstellungen und gehe dann über „Speichern unter“ und geb‘ der RDP-Datei einen beschreibenden Namen.

  2. Ich habe auf dem Client verschiedene Remotedesktopverbindungen abgespeichert alle rufen verschiedene Anwendungen auf funktioniert auch super aber alle Verbindungen nutzen den user der default rdp auch wenn per usernmame:s: ein anderer angegeben ist.
    Ich will dahin…:
    verschiedenen usern rdverbindungen auf ihren desktop legen und diese sich dann mit einem vorgegebenen user anmelden das der user sich nur noch mit einem passwort authenifizerien muss…

  3. Hm, ich kann das gerade nicht nachvollziehen, warum das so ist. Könnte evtl. mit dem Haken „Speichern der Anmeldeinformationen zulassen“ zusammenhängen.

  4. Hm..
    Der Harken ist nicht gesetzt naja wenn ich es rausfinde sag ich bescheid.

    Danke für die Hilfe!

  5. Pingback: Windows 8 zum Terminalserver machen | Andys Blog – Linux, Mac, Windows

  6. Hallo,
    ich habe vor ein paar Wochen mit Freude diesen Blg gelesen und mir darauf hin ein neues System zusammen gestellt um Ihn dann auch mit min. 2 Personen per RDP zu nutzen. Ich bin der Anleitung gefolgt, aber leider kann ich noch immer nicht die mit 2 Usern auf dem System arbeiten. 🙁 Ich nutze Win7 in der Ultimate Edition (Service Pack 1). Hast du vielleicht eine Idee was ich noch machen könnte ?

    Beste Grüße
    Sebastian

  7. Hm, da müsste ich jetzt mal wieder darauf los raten.
    Für mich hat es wie in der Anleitung beschrieben in der Vergangenheit immer funktioniert.

    Ich gehe jetzt einfach mal davon aus, du hast die Datei gepatcht und auch die dazugehörige *.reg-Datei ausgeführt?
    Neustart gab’s bestimmt auch schon?

    Ich weiß aktuell nicht, in wie weit Microsoft das vielleicht „kaputtgepatcht“ hat.
    Noch dazu hat man es sich in Redmond wohl mal wieder anders überlegt, was die Rechtmässigkeit solcher Lösungen angeht:

    http://blog.ebertlang.com/2012/11/07/vertrieb-von-xp-unlimited-eingestellt/

    Der Link bezieht sich zwar auf XPUnlimited, das Prinzip, also Client-Windows als TS-Windows zu nutzen, ist das Gleiche oder doch das Selbe 😉

  8. Guten Abend,

    also ich musste insgesamt 3 Datein patchen, weil 64bit, aber eine *.reg Datei lag dem aktuellen Patch auch net bei. Könntest du mir vielleicht damit aushelfen?

    Beste Grüße

  9. Soweit ich das sehe, sind die Downloads nicht mehr verfügbar.

    Wie kommst du auf drei Dateien?
    Mir ist bislang nur die termsrv.dll bekannt, die letztlich gepatcht wird und dann die Registry-Einstellungen, die man importiert.

  10. Hey,
    habe noch mal ganz genau hingeschaut und ich hatte wohl den falschen Patch :/. Dir vielen Dank, denn jetzt funktioniert es ohne Probleme! 🙂

  11. Vorsicht,
    Die Seite von der man das patch herunterlädt, wurde von GData Internet Security mit folgendem Kommentar gesperrt:
    G Data AntiVirus 2013 hat den Zugriff auf diese Webseite verweigert.
    Die Seite enthält infizierten Code: HTML:Script-inf (Engine B).
    Mfg

    Dr. L. Hoins

  12. Auf einem Windows 7 SP1 64 Bit Rechner (genauer gesagt, einem Mac Mini 2011 mit W7) wird mir das KB2592687 angeboten, nämlich ein Update für das Remotedesktopprotokoll 8.0
    Gehe ich recht in der Annahme, dass ich mit diesem Update meine derzeit schön funktionierenden mehrfachen Sessions mit RD verlieren würde?

    Kann man mit diesem KB2592687 überhaupt noch das Feature der mehrfachen Sessions haben?
    Also falls es dann nicht mehr geht, ginge es dann evtl. wieder, wenn ich den Patch noch mal durchführe, weiß das jemand?

    Oder berührt der KB2592687 das alles gar nicht?

    Danke, Gruß franc

  13. Da kann ich absolut nichts zu sagen.
    Ich habe aber mal vernommen, das man das Update auch wieder deinstallieren könnte.
    Getestet habe ich das alles allerdings nicht.

  14. Ist ja auch die Frage, ob das nur die mstsc ändert, und gar nicht die termsrv.dll usw.
    Das müsste man mal virtuell ausprobieren, habe dazu aber gerade keine Zeit.
    Sicherheitshalber werde ich daher dieses sowieso nur optionale Update nicht installieren.

  15. Hallo,
    mal ne frage. also das notepad als remoteapp funktioniert nach deiner anleitung bestens. aber ist auch möglich eine msaccess anwendung zu starten? wenn ja dann wie ?????
    vielen dank schon mal

  16. Erstmal vielen dank für den tip. aber vielleicht stell ich mich auch zu blöd an, aber ich bekomme immer nur den hinweis das das programm nicht geöffnet werden kann. irgendeine idee woran das liegen könnte?

  17. Hi,

    ich hab dasselbe Problem – mit Notepad krieg ichs hin, mit ner anderen Anwendung (in dem Fall AutoCAD) gehts aber nicht.

    Any Ideas?

  18. Runtergeladen, gepacht, neustart. Funktioniert. Sehr gut.
    Hoffe nur, der Patch enthält keinen Schadcode. Ist bei angepassten DLLs immer so eine Sache…

  19. Hallo Leute,

    wie man in vielen Foren lesen kann ist ja Remote App auch unter Windows 7 möglich. Von der Rechtslage her ist es eben so das man eben TS Lizenzenhaben muss um das verwenden zu dürfen…dies alles ist kein Problem und vorhanden.

    Nun wollte ich das ganze mal testen und habe den Test-Rechner so vorbereitet wie in den u.g. Links angegeben:
    http://geekswithblogs.net/twickers/archive/2009/12/18/137048.aspx
    http://www.andysblog.de/windows-terminalserver-marke-eigenbau-inkl-remoteapp-mit-windows-xp-und-windows-7

    PS: RDP ist aktiviert und der User mit dem ich es testen wollte auch. Mit dem User hat es nicht funktioniert und mit dem Administrator Account auch nicht. Was lediglich klappt ist das beim ausführen der RDP-Datei, eine Authentifizierungsanforderung erscheint, danach das Remote App Fenster mit der Angabe CALCULATOR (habe eben mal den calc als TEst genommen) – danach eine Zertifikatsinfo mit der Möglichkeit das Zertifikat zu installieren etc. und danach tut sich nichts mehr, anstatt das der CALC sich öffnet passiert gar nix…..

    Wo ist hier denn der Fehler? In der Registry und im RDP File ist nix zu finden – alles sieht so aus wie in der Anleitung…

  20. > wie man in vielen Foren lesen kann ist ja Remote App auch unter Windows 7 möglich.

    Mit Einschränkungen. Unter Win 7 Pro funzt es nicht.

    > Von der Rechtslage her ist es eben so das man eben TS Lizenzenhaben muss um das verwenden zu dürfen…dies alles ist kein Problem und vorhanden.

    Das hat sich mittlerweile geändert. Ich habe den Beitrag mit einem entsprechenden Hinweis versehen.

  21. Ich habe eine Weile keine solche Terminal Server Dienste auf ein paar Windows 7 Rechnern benutzt und stelle plötzlich fest, dass alle Verbindungen nicht mehr funktionieren. Es heißt dann, wenn ich eine Verbindung im Hintergrund einer laufenden Konsole Sitzung durchführen will, dass bereits eine Anmeldung besteht und dass diese dann abgemeldet würde.
    Da muss sich etwas getan haben in der Zwischenzeit (vor ca. 3 Monaten glaube ich ging es noch einwandfrei).
    Weiß da jemand was?
    Gibt es dann ein Update des Patches oder ist das nun gänzlich unmöglich geworden?

    Danke

  22. Ist mir nichts bekannt. Könnte evtl. an RDP 8 liegen (siehe Kommentare) oder einfach mal den Patch rückgängig machen und erneut ausführen.

  23. Ja, jetzt geht wieder. Ich musste tatsächlich einfach noch mal den Patch ausführen, also die UniversalTermsrvPatch-x64.exe, dann ging es wieder. Es wurde im Patch auch als nicht gepatcht angezeigt.
    Da gab es wohl einen termsrv.dll Update, mindestens der KB2984972 (vom 22.10.2014) schließt ja den Hack, liest man.

  24. Hallo,

    ich habe noch ein Problem mit den RemoteApps. Das Anmelden per RDP, auch mit mehreren Usern funktioniert einwandfrei. Wenn ich aber versuche Notepad als Remote App auszuführen passiert nichts; zumindest sehe ich am Monitor nichts und in den Ereignisprotokollen vom lokalen W7 pro und vom gepatchten W7 pro „Server“ auch nicht. Wenn ich einen Benutzer angebe der nicht für Remote App freigeschaltet ist bekomme ich wenigstens eine Fehlermeldung dass dieser User keine RDP Verbindung aufbauen darf. Woran könnte das liegen? Wäre nett wenn Du eine Idee für mich hättest.

    Gruß Jochen

  25. Ah, ich D…, ich brauch ja als Host eine Ultimate version. Hab ich erst jetzt gelesen.

    Gruß Jochen

  26. Hallo, danke für diese Anleitung funktioniert echt super. Eine kleine Frage bzw. Problem gibt es noch. Wenn die Nutzer das Programm, welches die RemoteApp starten, beenden, so wird nur die Verbindung zwischen Remoteapp und Server getrennt, die Benutzer bleiben aber angemeldet. Wie bekommt man das hin, dass die Benutzer, sobald Sie das Programm beenden auch abgemeldet werden?

  27. Via Gruppenrichtlinien kann man ein Abmelden von getrennten RemoteApps bzw. Sitzungen einstellen. Meiner Erfahrungen nach funktioniert das allerdings nicht immer.
    Alternativ die RemoteApp mittels Tool starten:

    Windows: RemoteApp-Helper

    Oder zu einem festen Zeitpunkt alle Benutzer abmelden:

    Windows: Alle Terminalserver-Benutzer per Skript abmelden

    Letzteres habe ich mal für einen Kunden geschrieben, setzen wir allerdings auch ein, da die RemoteApp-Sessions trotz GPO „offen bzw. hängen“ bleiben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.