How to configure Microsoft RDS Universal Printing Deepdive
In Windows Server 2008 R2 Microsoft introduced the Easy Print feature. The easy print feature is Microsoft's solution for limiting the amount of drivers used by printers that are mapped via the client printer redirection option. In this article I will start with explaining the printer connection possibilities, followed by describing which configuration options are available, what happens when a specific setting is configured and what Microsoft could do to improve this feature.
Changes to EasyPrint since Window Server 2008R2
Windows Server 2012R2 is the latest version, but actually nothing has been changed in all these years and different versions of Windows Server. Later in this article you will see that I personally think that is a pity, because with some small improvements it would be much better. The good thing is that this article fully applies to all Windows Server versions from Windows 2008R2.
Printers within RDS Sessions
Experienced people can skip this paragraph as printing within Terminal Services/Remote Desktop Services has not changed fundamentally over the years. However I still come across customers that have misconceptions of the way printers and drivers are used within RDS infrastructures.
Basically there are ways printers that can be connected within an RDS session. A printer assigned via the RDS client where the printer device is defined on the client itself and a printer connected directly via the network (so connected from a printer server or directly via a hostname/ip-address).
The first category is named Client Printer Redirection, which represents that the printer is connected from the client via the RDP client into the RDS session. The print job will be sent via the RDP channels from the RDS server to the RDS client, where the job will be sent to the print device/queue.
The second category I will label as network printers, they are mapped directly into the session. The print job will be sent from the RDS server directly to the print device/queue.
The Easy Print functionality is only for the Client Printer Direction category, network printers cannot use this functionality. Later in this article I will mention some possibilities for network printers, but we will focus first on Client Printer Redirection and what Microsoft Easy Print offers in this category.
What is Microsoft Easy Print?
With Client Printer Redirection the printer available on the client is mapped into the RDS session. To accomplish this, the redirected printer needs to be connected to a printer driver that is available on the RDS server. Before Easy Print you needed to have the same printer driver available on the RDS server as the one that was available on the connected client. This could have lead to hundreds of printer drivers on one server, which was not optimal for stability of the RDS server. A kind of solution was to “map” a specific client driver to a driver which was available on the server. For several similar printers, this worked pretty well, but for many printers the exact driver was needed. Easy Print solves this issue by mapping the Client Printer to the Easy Print driver instead. So you don’t need to have a separate driver for the printers that are connected via the Client Printer Redirection.
Configuring Easy Print
The core component is that the Easy Printer driver is installed by default when RDS is enabled. The whole configuration is done via Group Policy Objects. The configuration settings can be found at Computer Configuration – Administrative Templates – Remote Desktop Services – Printer Redirection. A few settings can be found at the User Configuration in the same path Administrative Templates – Remote Desktop Services, Printer Redirection. As the settings are exactly the same as at Computer configuration I will describe the settings based on the Computer Configuration. I will describe later on when the user settings can come into play.
Figure 1: Easy Printer Configuration option with Group Policy Object.
Do not allow client printer redirection
The first setting is not really related to Easy Print, but an important one. By default Client Printer Redirection is enabled, so no configuration changes are needed. I assume that you don’t want to disable Client Printer Redirection otherwise you cannot use the Easy Print feature. So by default this setting would not be configured. If you want to override settings configured at a different level you could set this setting to disabled (as policies have the highest priority). For example you can configure enable or disable Client Printer Redirection (and some configuration settings) on the Collection Set.
Figure 2: Client Printer Redirection can also be enabled/disabled within a collection set.
Do not set default printer to be default printer in a session
The second one is also not specific for Easy Print, but is commonly overlooked. Be default when Client Printers are detected and Client Printer Redirection is enabled, the printer defined as default on the client will also be set as the default client within the RDS session. Also, when network printers are being used it can be the case that this behavior is not the way to go. By enabling this policy the Client Printers will be redirected, but will not be set as the default printer.
Redirect only the default client printer
Also this setting is not specific for Easy Printer, but also related to Client Printer Direction. By default all available Client Printers will be redirected to the RDS session. If users have many client printers this can take up some time and mostly the default printer is enough for the end-user. By enabling this policy setting you can define that only the client printers that are set as default will be redirected into the session and the other printers are not redirected. It really depends if this is the desired behavior in the organization.
Use Remote Desktop Easy Print printer driver first
This setting is one of the ways to enable the Easy Printer functionality. By enabling the Easy Print, the printer driver will be used for all Client Printer Redirection that will be created. In normal situations this will ensure that all Client Printers will be created using the Easy Print driver. I did not see a case that the driver could not be used. In the next paraghraph I'll describe how this behavior can cause some issues. By default the Easy Printer driver will not be used so you should enable this policy if you would like to use Easy Print for all Client Printers.
Specify RD Session Host server fallback printer driver behavior
This setting sounds as if it’s not related to the Easy Printer driver but it actually is. With this policy you define the use of the Easy Print Driver in another way as Use Remote Easy Print printer driver first setting. By default the Easy Print option is disabled, which is the same as configuring this setting with the Do nothing if one is not found. In other words, if no suitable driver is found for the Client Printer, the printer will not be redirected. The other three configuration options enable the Easy Print printer driver when a suitable driver cannot be found in the first place. So only when there is no driver available (third party added or native available in the Windows server version) the Easy Print driver will be used. With this policy you can define if it should use the PCL, PS version or both when the Easy Printer driver will be used as a fallback scenario.
What could be improved?
I think most organizations will use the Use Remote Desktop Easy Printer driver first as the default setting as this guarantees that no other driver is required. However I had a case that the printer was using the Easy Printer driver (so it was detected and used), but there were issues with the printer (it took about 3 minutes for the printer to start printing on paper). So we needed to change the setting to Specify RD Session Host server fallback printer driver behavior. As I already mentioned the server will first check if a driver is available. What I don’t really like is that if no driver is installed, but the device is recognized and a native MS driver is available, this one will be installed. This will mean that for many printers the native driver will be used and you will get a lot of drivers on the RDS server. Although the native drivers are not bad at all, I have seen on a regular basis that printing from specific applications or specific functions in applications does not function correctly. In this case that was working fine with the Easy Print driver, but the native driver was not working correctly.
As an improvement I would really suggest that Microsoft add a configuration setting that disabled automatic adding of native drivers, so you can completely manage which drivers are available in combination with Specify RD Session Host server fallback printer driver behavior. As I’m also implementing Citrix XenApp/XenDesktop at several customers I know it’s possible because Citrix is offering such a setting.
Figure 3: Citrix can prohibit automatic installation of native printer drivers.
As a workaround you can use Use Remote Desktop Easy Printer driver first which is also available as a User Configuration. It depends a little on what the actually issue and case is, but it could help assigning to Use Remote Desktop Easy Printer driver first to most of the users and use the Computer Configuration Failback policy for those subgroups of users that cannot work with the Easy Print Driver.
Figure 4: The User Configuration options available for Easy Print.
Universal Network Printing
As stated in the beginning of the article Easy Print is only available for Client Printer Redirection, not for network connected printers. Many organizations are also looking for a solution for keeping printer drivers to a minimum for these type of printers. The first big step is that most manufacturers have a universal driver, which supports (almost) all their printer devices. If that still does not satisfy your needs then a third party product comes into play as Microsoft does not have a solution (yet).
In this article I described the configuration options of Easy Print in detail and when and which settings should be used. We also discussed the improvements that Microsoft could look at to make the Easy Print solution even more robust and better manageable with printer drivers.