Historically, printing redirection has been difficult for Terminal Services(TS) customers. To successfully redirect a given user’s client printer to the terminal server, the proper drivers needed to be installed on both the TS client machine and TS server machine. Customers have discovered that the requirement of having the TS server host a matching printer driver can be problematic for a number of reasons (e.g. inability to find matching drivers, or the drivers the printer vendor supplied just don’t work with TS). Simply put, we wanted to solve these issues and reduce administrator headaches. The solution is TS Easy Print: a “driver-less” solution for printer redirection over a TS session.
What is TS Easy Print:
TS Easy Print is a proxy for every print action that simply redirects all printing-related work to the user’s local machine without the need to install any print drivers on the TS server. This system provides several benefits, such as being able to redirect any printer from the user’s client machine without having to reconfigure the server while still allowing the user to configure the print job as though he were printing on his client machine.
On Longhorn Server, the user’s local client printers installed in a TS session will be installed with the TS Easy Print system.
What is needed to use TS Easy Print:
On the TS server, Longhorn Server needs to be installed. That is all! No additional drivers need to be installed; no additional configuration needs to take place. On the TS client, the user must be running TS client 6.1 and have .NET Framework 3.0 SP1 installed (both will be released in the same timeframe as Longhorn Server). Both TS client 6.1 and .NET Framework 3.0 SP1 are intended to be available for XP, Windows Server 2003 and Vista machines. As a result, XP, Windows Server 2003, and Vista machines will be able to connect to Longhorn servers and use TS Easy Print just as Vista machines will.
How TS Easy Print works:
As mentioned above, the general idea behind the solution is to make a driver on the server that redirects all printing related work to the local machine. The implementation of this solution comes in two pieces.
The first piece is presenting the user with printing preferences through UI so that they may configure the print job on any printer they have. Instead of creating some server side UI that will show the bare minimum of preferences users need (such as number of copies, landscape v. portrait, etc…) and apply this UI to all printers, the TS Easy Print driver acts as a proxy and redirects all calls for UI to the actual driver on the client side. When the user edits preferences for a print job on a redirected printer, the TS client will launch this UI from the local machine on top of the remote session. As a result, the user sees the same detailed printer-specific UI and all printer options are available to him. He would see exactly the same options as if he were printing something locally. The user’s selected preferences are then redirected to the server for use when printing. Below are screenshots that show an example of the above behavior.
This picture shows that the TS Easy Print driver is installed.
The mstsc window is made smaller and the theme of the printer preferences window is different. This shows that the printing preferences window is running on the TS client machine!
The second piece is the ability to send a print job from the server to the client and reliably print the job. To do so, we take advantage of Microsoft’s new document format, XPS (http://microsoft.com/xps). When redirecting print jobs, on the server, we create an XPS file using the preferences the user has selected, send the XPS file to the client, and, with the help of other printing components, print the job on the appropriate printer. XPS has the advantage of being a document format that encapsulates printing preferences and document data. That, plus the fact that XPS comes with Windows, makes using XPS to transport printing data a very logical mechanism. The dependencies on the XPS format are what necessitate the installation of .NET Framework 3.0 SP1 on the TS client machine.
How to test TS Easy Print with Beta 3:
As of now (04/27/07), the only platform that can be used as the client computer is Longhorn Server Beta 3. As mentioned in the “What is needed to use TS Easy Print”, more platforms will be made available. On the Longhorn Server Beta 3 client computer, the one additional step needed to ensure that printers are redirected over TS Easy Print is to install .NET Framework 3.0 (SP1). There are two ways to do this:
1. Through UI: Start -> Administrative Tools -> Server Manager -> Add feature -> .Net framework 3.0
2. Through command line: pkgmgr.exe /iu:NetFx3
With this, all is set. We can redirect client printers as we used to normally by enabling the Printers checkbox in mstsc -> Local Resources -> Local devices and resources (this is enabled by default in mstsc). Redirected printers on the remote session will now be installed using TS Easy Print and do not require any configuration on the server by TS administrators.
Coming up: Part 2 of Easy Print