Introducing Terminal Services Easy Print: Part 2

Introducing Terminal Services Easy Print: Part 2

  • Comments 36

[Part II in a series. Jump to Part I, Part II, Part III] 

In Part 1, we introduced the main benefit to Terminal Services (TS) Easy Print: a "driver-less" solution for printer redirection over a TS session. In addition, several other important changes have been made to improve printing redirection performance over TS. This post lists the changes and their benefits.

 

Change #1: New group policy to allow the redirection of only the default printer of the TS client machine.

            In the past, administrators have requested the ability to have their users redirect only the default printer on the TS client machine, and not all printers. To meet this request, we have introduced a new group policy (GP) to Longhorn Server. The GP is located under:

"Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection"

 

and named:

 

 "Redirect only the default client printer."

By enabling this GP on a TS server, an administrator will ensure that only the TS client's default printer will be redirected on the TS server, and not all printers.

            By having the ability to allow the redirection of only one printer, administrators may now allow printing redirection -- without taking the same scalability hit they would have by redirecting all printers. Also, administrators can avoid having printers installed that their users will most likely not want to use (such as the Fax printer that comes installed by default on Windows Vista).

            This policy will work with connections from any version of the TS client.

 

Change #2: Scope of redirected printers

 

In Windows Server 2003, administrators could see all redirected printers of every user. Also, if a user had multiple sessions open, redirected printers of all sessions would be visible to each individual session. In Longhorn Server, this is no longer the case. The visibility of redirected printers is limited to the session where they are installed.

The behavior is very similar to the behavior of redirected drives. Printers now have the Session SID set in the list of ACLs. Properties of this change include the following.

  • This ACL limits the printers from appearing in another session, even that of the same user. For example, say user1 has logged on to two different TS sessions (session 1 and session 2) on the same server. Redirected printers of session 1 will not be visible in session 2 and vice-versa.
  • There are no exceptions to the above rule. By default, anyone under the "Administrators" local group also will not be able to access the printer.
  • The users can change access to the printers by editing the permissions in the printer properties to be made accessible to other users.

This is a significant change from Windows Server 2003. Previously, redirected printers were visible to all sessions belonging to the same user as well as to all administrators on the server. Due to this new behavior, there has been a perceivable performance improvement in the enumeration of printers and in the logon time of new sessions.

 

Change #3: Per-session Default Printers

Another new feature in Longhorn Server is that the default printer is on a per session basis. In Windows Server 2003, the default printer for all sessions that share the same user was the same. In Longhorn Server, each session a user owns will have its own default printer set. Each session's default printer is independent of any other session's default printer, regardless of which user created the sessions.

As a result, the registry location holding information about the default printer is different. The per-session default printer is stored in the "Device" key at the registry location mentioned below. If the Device value is empty then it falls back to the per-user default printer key.

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\SessionDefaultDevices\<SESSION_SID>

With this change to the registry location, Winspool APIs such as GetDefaultPrinter() and SetDefaultPrinter() should be used to query or set the default printer, respectively.

 

Change #4: Names of redirected printers are shorter.

            As the screenshots below show, the names of redirected printers have changed. In Windows Server 2003, if a user redirected a printer named "Canon Bubble-Jet BJC-1000", the TS session would display the redirected printer as "Canon Bubble-Jet BJC-1000 (from %CLIENT_MACHINE_NAME%) in session %Session_ID%", as shown in the screenshot below.

In Longhorn Server, the TS session displays "Canon Bubble-Jet BJC-1000 (%SESSION_ID%)" as shown in the screenshot below.

The shorter name helps make the experience more seamless and makes scripting easier.

Leave a Comment
  • Please add 1 and 3 and type the answer here:
  • Post
  • [Part III in a series. Jump to Part I , Part II , Part III ] In Part 1 , we introduced the main benefits

  • [Part I in a series. Jump to Part I , Part II , Part III ] Historically, printing redirection has been

  • EDIT:  I found the solution.  I disabled in the Group Policy "Use Terminal Services Easy Print printer driver first" under

    "Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection".  Now below problem is solved for ALL the client PCs trying to print to their local printer via TS.

    ORIGINAL PROBLEM:

    I have a workstation with windows xp servicepack 3 and .net 3.5.  In the remote session all my redirected printers show up but when I try to print out of them, no page comes out of the printer with no error as well. However, the redirected printer HAD been working fine via TS a month ago.  I don't know why it wont work now.  I tried another computer (at home) with the same specs above and my redirected home printer wont print.  Further exploration...no PC running RDC connecting to our Win Server 2008 64Bit via TS will successfully print via redirected printer.  Yet...the macintosh's RDC 2.0 will print via TS redirected printer every time still to through this same server.  I've upgraded to Win Serv '08 RC2.  No help.  Ran every update possible on the clients.  No help.  Checked the Group Policy, Easy Print is engaged and clients have no boxes checked for disabling printers, audio, etc.  

    I'm going to try disabling Easy Print, install the client printer driver on the server, and see how that goes.  I tried with Easy Print ENABLED to do the above, but no help.

  • Up until 2 weeks ago I was able to see all redirected printers. I as Administrator. Now I can't see any. Can't figure out what changed. There seems to be a setting somewhere that will allow this feature to work.

  • David, give to windows\system32\spool\Printers folder permisions to your Remote desktop users, i had the same problem and i solved it with this permisions.

    Regards,

    Paco.

  • hi, none of these information in here helped me to print on local printers via remote desktop. no error i recieved, it just simply doesnt show printers on the server.

Page 3 of 3 (36 items) 123