[Part I in a series. Jump to Part I, Part II, Part III]
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.
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.
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.
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.
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.02. 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
Terminal Services Easy Print explained by Microsoft Terminal Services Team.
It doesn’t seem more than 2 minutes ago I was sitting watching the announcement of Terminal Services
I added a new section describing the current options for testing EasyPrint
Me esta encantando la beta 3 de longhorn y ver cómo me ayudara a mejorar mis infraestructuras, reducir
Microsoft Diagnostics and Recovery Toolset K dispozici je 30 denní zkušební verze nástroje pro obnovu systému, který je součástí Microsoft Desktop Optimization Pack. Tento balík nástrojů obsahuje nás ...
I'm having issues with TS printing. I have everything installed as directed above. It acts like it's printing... but then nothing prints.
What printer are you using? Are you using "Microsoft XPS Document Writer"? If so, then a dialog should appear on the TS client machine to save the .XPS file. It is possible that this dialog is behind your mstsc.exe window, which is why you do not see it.
In Part 1 , we introduced the main benefit to Terminal Services (TS) Easy Print: a "driver-less" solution
poor! still nto working correctly...will MS terminal server EVER get printing right?
Bob, did you follow the instructions in "How to test TS Easy Print with Beta 3"?
Does Easy Print support mixed platforms, such as x86 clients using x64 TS and x64 clients using x86 TS? Is any configuration needed for these scenarios?
You shouldn't have to do anything special to use Easy Print in mixed platforms. Basically, on the server the document is rendered as an XPS document and then transfered to the client, where it is printed using the local print driver. XPS documents can be created and printed on both x86 and x64 platforms, so there won't be any problems interoperating between the two.
Thanks for asking the question Mike. This brings out an interesting point that we should highlight - printer drivers have historically been a kind of a roadblock in 64-bit server adoption becuase many IHV printer drivers were not supported on 64-bit servers. Easy Print is a small step in removing that roadblock at least for remote scenarios, because there is no need to install any kind of IHV printer drivers on Longhorn Server if the primary access mechanism is through Terminal Server or even for remote administration purposes.
It doesn't seem more than 2 minutes ago I was sitting watching the announcement of Terminal Services