TS Easy Print und das Drucken in Terminal Server-Umgebungen mit Windows Server 2008

Update Juli 2008: Um die neuen Terminaldienste-Features auch auf einem Computer mit Windows XP Service Pack 2 verwenden zu können, der eine Verbindung mit Windows Vista- oder Windows Server 2008-Computern herstellt, kann man den RDP 6.1 Client jetzt auch separat als Update für Windows XP (KB952155) herunterladen.

Das Thema Drucken auf Terminal Servern sorgt bei Administratoren mindestens für angehobene Augenbrauen. Im einfachsten Fall gibt es für alle Drucker eingebaute Druckertreiber im Windows Server und Client. Diese werden in die Session umgeleitet und alle Anwender sind zufrieden. In der Praxis steckt der Teufel im Detail: Druckertreiber von Drittanbietern lassen sich oft nicht zuordnen, weil die Druckernamen unterschiedlich sind. Druckertreiber von Consumer-Geräten sind oft dem Server unbekannt und auf dem Server nicht lauffähig.

Weiterhin ist die Nutzung von 64bit Windows-Serverversionen für Terminal Server extrem abhängig von der Unterstützung durch 64bit Druckertreiber. Zwar erlaubt die Nutzung von 64bit eine deutlich höhere Skalierbarkeit von Terminal Servern - in der Praxis scheitert die Einführung aber oft an fehlenden Druckertreibern.

imageDas erste Problem lässt sich möglicherweise über das Definieren einer INF-Datei in der Registry zum Mappen des unbekannten Druckers auf einen identischen Druckertreibernamen in der Windows Ntprint.inf lösen. Der Knowledgebase-Artikel Windows 2000-Terminaldiensteserver protokolliert Ereignisse 1111, 1105 und 1106 beschreibt die richtige Vorgehensweise für Windows 2000 und Windows Server 2003.

Zur Automatisierung dieses recht arbeitsintensiven und fehleranfälligen Vorgangs stellt Microsoft den Terminalserver-Assistent für die Druckertreiber-Umleitung zum Aktualisieren des Erstellungsvorgangs für die benötigte .inf-Datei zur Verfügung. Der Assistent unterstützt dabei die Problembehandlung und das Ersetzen von Druckertreibern, deren Umleitung fehlgeschlagen ist.

Allerdings ist diese Lösung auch nur mit Terminal Server-tauglichen Druckertreibern umsetzbar und bietet keine Lösung für alle Anwendungsfälle. Alternativ gibt es seit Windows Server 2003 SP1 den Terminal Server fallback printer driver, welche unbekannte PCL- und Postscript-Drucker umleiten kann - allerdings mit dem Nachteil reduzierter Funktionalität und möglicherweise auch reduzierter Qualität des Ausdrucks.

Das zweite Problem ist technisch bisher schlicht nicht lösbar, da 32bit Treiber nicht auf einem 64bit OS funktionieren. Es muss also ein völlig neuer Lösungsansatz geschaffen werden.

imageMit Windows Server 2008 vollzieht Microsoft eine Architekturänderung im Terminal Server-Bereich. Terminal Server Easy Print (TS Easy Print) soll die bisherigen Probleme im Druckumfeld lösen. Voraussetzung für die Nutzung von TS Easy Print ist die Nutzung von Windows Server 2008 auf dem Terminal Server sowie Remote Desktop Connection (RDC) 6.1 und das Microsoft .NET Framework 3.0 Service Pack 1 (SP1) auf dem Client.

Windows Server 2008 und Windows Vista mit Service Pack 1 (SP1) als Client enthalten alle dafür notwendigen Komponenten und benötigen keine weitere Konfiguration. TS Easy Print funktioniert hier out-of-the-box (OOBE). Windows XP mit Service Pack 3 (SP3) unterstützt auch TS Easy Print, allerdings muss hier das .NET Framework 3.0 SP1 separat installiert werden. RDC 6.1 ist schon in Windows XP SP3 enthalten.

Serverseitig muss auf dem Terminal Server unter Windows Server 2008 das .NET Framework 3.0 SP1 installiert werden. Mit der Maus geht das über den Server Manager, indem man das Feature .NET Framework 3.0 hinzufügt. An der Kommandozeile geht das ganze auch automatisiert mit dem Befehl pkgmgr.exe /iu:NetFx3.

imageTS Easy Print bietet nun dem Anwender beim Drucken zuerst den normalen Druckdialog an. Hier lassen sich generische Einstellungen wie zum Beispiel die Anzahl der Ausdrucke festlegen. Diese Daten werden von TS Easy Print als Proxy angenommen und an den eigentlichen Druckvorgang weitergeleitet. Über die Schalter für die gerätespezifischen Einstellungen bekommt der Anwender den identischen Konfigurationsdialog wie vom lokalen Druckertreiber angeboten und kann dort exakt die gleichen Einstellungen vornehmen. Dabei werden auch die lokal eingestellte Konfigurationsinformationen des Druckers mit übernommen.

Der Server verarbeitet diese Informationen zusammen mit den Druckdaten zu einem XPS-Dokument, welches über das RDP-Protokoll an den Client geschickt wird. Clientseitig erfolgt nun die Umwandlung des XPS-Dokuments in einen normalen Druckjob und der Anwender erhält den gleichen Ausdruck, als wenn er das Dokument lokal gedruckt hat.

Über diesen Weg wird serverseitig kein spezieller Druckertreiber mehr benötigt und der Anwender am Client bekommt die gewohnte Konfigurationsumgebung dargestellt und kann auf alle Funktionen seines Druckers wie zum Beispiel Duplex-Druck, Sorter, etc. zugreifen. TS Easy Print macht dabei keinen Unterschied zwischen 32bit und 64bit. Von 64bit Terminal Servern können Anwender genauso auf ihre Drucker drucken wie von 32bit Terminal Servern - vorausgesetzt, auf ihnen läuft Windows Server 2008.

Weitere das Drucken betreffende Neuerungen in Windows Server 2008 sind die Möglichkeit zur zentralen Steuerung der Client-Konfiguration über Gruppenrichtlinien, veränderte Berechtigungen auf Druckerobjekten, damit jeder nur seine Drucker sehen kann, kürzere Namen mit sprechenderen Bezeichnungen für umgeleitete Drucker der jeweiligen Session, per-Session Default Printer sowie Bandbreitenmanagement für RDP-Verbindungen.

In dem TechNet Webcast Terminal Services mit Windows Server 2008 in der Praxis (Teil 1) - TS Easy Print stellte ich am 4. Februar 2008 die Neuerungen im Detail vor und zeigte TS Easy Print live in Aktion.