While there have been some major announcements at Synergy, like the Microsoft / Citrix pact including Azure, Office 356, Windows 10 VDI and more, some huge improvements to MCS regarding I/O storage optimizations, including MCS provisioning for the Nutanix Acropolis Hypervisor, the Federated Authentication Service, which was also (very) well received, I’d like to focus on a few smaller enhancements. Though ‘small’ does not mean less important, au contraire – as the French would say.
The Citrix UP it is designed to protect Citrix from the impact of printing. All it does is it captures the EMF data that is created by the Microsoft print process and then hands it over to the vendor driver to render in the target printer’s language.
- Universal Print Server - The Citrix Universal Print Server provides universal printing support for network printers. The Universal Print Server uses the Universal print driver. This solution enables you to use a single driver on a Server OS machine to allow network printing from any device.
- The idea is that we enumerate all the shared printers on a Printer Server and make a connection to each printer. This will make sure that the driver is installed if it wasn’t already present. The script could even be scheduled to enforce that newly added printer drivers are added to each Citrix Server.
As a side note – if you have read my book, or are planning to do so, then you probably know (or will find out) that I’m using my blog as an update mechanism for what’s missing in the book as a result of new XenDesktop and XenApp releases going forward, like version 7.9 last week. The enhancements around printing are a great example to start with, keeping it a work in progress!
Business critical
First off, I like printing. It’s not that I have implemented dozens of complicated print architectures, no, a couple, but far from many. I just like the technology and processes behind it. Especially since printing is being considered business critical at almost all customers I have visited.
While the reasons for this may vary, imagine this, and I’m sure you’ve seen it as well; a user receives an important e-mail, or perhaps he or she has come across an interesting white paper or other type of document, what will be one of the first things they’ll do? They will print it. Then they’ll read it, us it as a reference, make notes, they’ll take it home with them, save it on their desks and so on. Not everybody, but it sure does happen a lot. I know I do it.
Although I prefer pen and paper over a keyboard as well, so perhaps I’m not the best reference.
Universal Print Server
Historically the Citrix Universal Print Server (UPS) combined with the Citrix Universal Print Driver (UPD) have long been considered to (preferably) fit smaller to mid-sized companies, where printing was important, but not business critical per see. One of the (main) reasons for this was that prior to version 7.9 the UPS was basically a single point of failure. There was no way to setup and configure multiple print servers and apply HA and/or Load balancing. Luckily that all changed with the introduction of XenDesktop and XenApp 7.9
Today we DO have the option to configure multiple Universal Print Servers in an LB and/or HA set up, pretty sweet right? Note that you will have to be on a Current Release (no LTSR) version to be able to make use of this functionality, since updating your base XenDesktop / XenApp opponents will be necessary, VDA’s included.
UPS load balancing in more detail
This is (roughly) how it works. At logon time session (network) printers are mapped to different print servers. Each VDA has a separate (built-in) load balancer service responsible for distributing the print load to all configured print servers as part of the HA / LB setup, and policy. If one of the print servers should fail or become unresponsive for whatever reason (*checks are performed periodically) and it does not respond within a certain (configurable) time frame, set to 180 seconds by default, it will be removed form the VDA load balancing scheme. The load balancer service also has a fail-over mechanism built-in, which will make sure that any failed print connections will automatically be redistributed to the still healthy and active print servers. So it is not HA as in active / passive, but as part of the load balancing policy.
FMA fact: In theory there is no limit to the amount of print servers that can be configured.
For the above-mentioned functionality you need to configure the following policies:
‘Universal Print Server for load balancing’ and ‘Universal Print Server out-of-service threshold’
The latter (see below as well) is to configure a default time-out value after which a failed, or unresponsive print server is considered to be permanently offline and thus cannot be recovered within the specified amount of time; the earlier mentioned 180 seconds by default.
Checks and validation
*As mentioned, checks between the VDAs and the print servers are performed periodically to see if they, the print servers, are online and active. When a VDA is unable to establish a network connection to one of the print servers, or if a print server fails to respond to PING messages it is considered down and/or unresponsive. This is also where the abovementioned ‘Out-of-service threshold’ policy comes in. If the print server does not respond within the time-out window configured as part of this policy it will be considered permanently offline and it will be removed from the load-balancing scheme part of the VDA, as highlighted earlier. The PING interval is configurable through a registry key (I’ll find out which one), no policy just yet.
When configuring a UPS load balance policy, as shown above, you also have the option to manually validate all print servers involved. After clicking the ‘Validate servers’ button the configured print servers are first queried for their printing queue names, which will be validated on the Delivery Controller as part of the Load Balance policy or on the VDA when the Citrix Management service starts. It will check to see if all servers are indeed print servers and if they are configured identically. Citrix recommends configuring each print server identically to optimize the printer creation time as part the XA and/or XD session. Again this is just a validation, nothing more. Besides an event log entry no other action is taken.
UPS components
The Universal Print Server itself consists out of two main components, a client (UpsClient) and a server component. The client component is part of the installed VDA, but disabled by default. To enable the client component you will have to configure the policy ‘Universal Print Server enable’. The UpsServer, or server component must be separately installed on the print server, for more information on how to accomplish this check here. The UPS can be configured though policies using Citrix Studio.
Universal Print Diver
The XPS UPD (there is also an EMF based UPD, which is used by default) has also been enhanced with a couple of more advanced printing features like stapling and print draw selection. If the physical print device and the accompanying native print driver both support it, users can now select their paper draw of choice, next to that, the stapling of documents is also supported.
Printing and the CEIP
When you install and configure the Universal Print Server, or multiple as part of a LB/HA setup, you will automatically be enrolled in the Citrix Experience Improvement Program (CEIP). While this is nothing to worry about, it’s still worth a mention so you, as a customer know what is going on. In fact, I would encourage all customers to participate in the CEIP since all data send is completely unanimous, encrypted and only used by Citrix for analyses purposes, so that they know how their products are used and what they can do to improve them.
The E-docs state “CEIP for UPS” so I guess it’s safe to assume that only UPS related statistics and usage information will be collected, uploaded and analyzed, though I will be double checking this with Citrix engineering and/or fellow CTP’s to make sure.
If you have no idea what I am talking about, please have a quick look at the following page, it explains what the CEIP is about, how it works and what the though behind it is.
Since the customer is king, you always have a choice. While you automatically opt-in, you can opt-out just as easy. To opt out of the CEIP (UPS specific) edit the registry key HKLMSoftwareCitrixUniversal Print ServerCEIPEnabled and set the DWORD value to 0. Change it back to 1 to opt-in again.
For many years, printing has been the bane of the Citrix tech’s existence. You work hard to put together a successful Citrix farm, carefully virtualizing applications and meeting user needs – but everything goes to pieces when the users try to print. Citrix printing issues can usually be categorized into one of four categories: Citrix issues, Print Driver Issues, Universal Print Driver Issues, or Application problems. Let’s take a look at a few common printer related trouble calls that a Citrix tech may receive:
How should printers be deployed in the environment?
In the old days, you would commonly deploy printers through a complex login script if you did anything at all. Keep in mind that deploying printers with a login script can cause slow logins – See my other blog: http://citrixtechs.com/blog/?p=42
In many offices, users are responsible for mapping their own printers. In today’s world through the magic of Microsoft GPO, printers can be deployed to a non-technical user base with relative ease. Use the following article to guide you with such GPO based printer deployments:
- Make sure to utilize the Citrix stress printers tool in your test/dev environment so that you can test print drivers before putting them into your production farm.
Problems with the print spooler?
Citrix techs usually spend some of their time wrestling with the print spooler. The print spooler on a Citrix server may hang, stop responding, or gobble the entire CPU of a server in certain scenarios. If you find that your print spooler is hung, the first thing you may try is to restart it through the services console. If the print spooler refuses to restart, or it is gobbling 100% of the cpu in task manager – you may have a specific rogue printer drive that is causing the issue. You’ll need to open the printers folder and see if there is a driver with stuck jobs on it. If you find this, delete the driver from the server and watch as the CPU returns to normal in the task manager.
Problems with the Citrix printing account?
The Citrix printing account can occasionally go corrupt, or be missing key permissions needed for it to function properly. If you suspect problems with this account, try switching the service from using this account to the local account to see if issues resolve. If problems go away, then you’ll need to use the Citrix account recreation tool (CTX113554) to rebuild the account, and follow CTX113555 to make sure that the permissions are assigned correctly.
How are my Citrix print policies configured?
Remember that all aspects of printing can be controlled through Citrix print policies. Until the latest version of Citrix, the Universal Print Driver (UPD) is available for client connected printers only. Depending on how you configure the Citrix print policies, your users may or may not be allowed to use the UPD, or to use native drivers. If you’ve excluded certain drivers from your farm after using the Citrix stress printers tool, you can use Citrix print policies to prohibit specific rogue drivers that you know to be a problem on your farm.
My Citrix print policies are not being applied!
In most cases where this is reported, Citrix print policies are applied – but then they are taken away by some other rogue GPO or policy in the environment. As with all GPO troubleshooting, the best way to troubleshoot this is to place a test server in it’s own OU and block all inheritance. Log in with a test user account, and verify that you can get the policy to work properly when other Microsoft GPO’s are completely out of the mix. Once you’ve proven this, then start adding back one GPO at a time until you find the troublemaker.
Can Roaming Profiles be causing printing issues for users?
Absolutely! There have been many cases recorded where Citrix techs had to delete and recreate user roaming profiles to solve printer auto-creation issues. I’ve witnessed some cases where users were not getting their default printer assigned correctly according to policy, etc.
Problems with certain versions of the ICA Client?
There are many documented issues with older versions of the ICA client. If you suspect a client issue, upgrade to a newer version of the client and see if the issue resolves.
Hot Fix and Patch level?
Every roll up pack for Citrix has contained multiple fixes involving printer and auto-creation of print drivers, etc. For this reason, I generally recommend that you always make sure your farm is operating on the most recent hot fix roll-up package from Citrix.
Problems with the version of printer drivers on print servers?
You may need to experiment with different versions of print drivers to troubleshoot certain issues. There have been documented issues with some PCL drivers, Ricoh drivers, etc – where certain versions did not work with Citrix, but when upgraded issues were resolved. Also be aware that some print manufacturers may require that you be running a certain level of .NET framework in order for their drivers to function completely.
Is the printing problem application specific?
Someone may submit a ticket that they can’t print over Citrix via the Great Plains application. The first thing you should do is have them try to print from Notepad or any other application. If the printing issue only occurs through a specific application, work with the application vendor to trace the issue. It could be that their application depends on a certain version of .NET framework or some other server side requirement in order for printing to function properly. If you want to rule Citrix out completely, log in via RDP to the desktop of the terminal server in question and launch the problem application. Try printing via RDP, and if the same issue occurs there – Citrix can be ruled out of the equation.
CPViewer.exe is gobbling resources and freezing my servers?
All About Citrixprint Servers
This is a known issue with Citrix printing when you are using applications that start many small print jobs. This is common with check printing applications, or other apps that might send 100+ small print jobs to the queue at any given time. The resolution is to employ a registry change (Mentioned in CTX114755) that stops this behavior.
Are there print related errors in the event viewer?
Most terminal servers and Citrix servers will have a certain amount of printer related errors in the event viewer. You can determine if you are looking at relevant errors by the printer name that is specified in the error message and the time/date stamp. Event viewer errors may be able to tell you if certain users are not able to get their printers when they log on, or if some printers are hung or having difficulty printing.
Should I use the Citrix Universal Print Driver?
The Citrix UPD has been a great invention that has gotten better with each revision of Citrix. By using the UPD a savvy Citrix Tech can make sure he isn’t loading his servers up with a bunch of unnecessary print drivers. Anybody who has run a Citrix farm for a period of time knows the dangers of allowing their clients to connect from home and print to their client attached printers. While you may have carefully screened the printers you allow on your network in the office, the printers people have on their desks at home can pose a danger to your terminal servers. If these drivers are allowed to load individually, they can interfere with or cause corruption with other drivers on the server. By utilizing the UPD, a Citrix administrator can cut down on print driver headaches dramatically. The only caveat is that some advanced printer functionality may be lost if the printers perform activities like stapling, collating, etc – so test UPD compatibility if you have important client printers in the environment.
Citrix Universal Print Server Download
Third Party Citrix print software?
Later versions of Citrix Xenapp seem to have dramatically fewer print problems than versions of the past. I’d say that anyone running Xenapp 6 or newer will probably be ok utilizing the built in features for Citrix printing. If you are running a version of Citrix older that Xenapp 6, you might want to consider using a 3rd party print software package like Tricerat Screwdrivers. Screwdrivers allows you to completely turn off Citrix printing features from within Xenapp or Presentation Server, and rely completely on the third party tool for all printing activities. While expensive to some companies, my experience has shown that companies with a lot of printer problems should at least consider using a third party tool like this to take some of the workload off of their Citrix administrators.
References: