A lire avant de poster : Informations importantes sur l'impression

désolé c’est en anglais…

mais avant tout chose, pour tout souci d’impression consulter l’un de ces documents :

sous CPS4.0 => http://support.citrix.com/article/CTX107137

sous CPS4.5 => http://support.citrix.com/article/ctx113261

Have you ever wondered how Windows transmits information from your computer to the printer? Windows accomplish this through the use of a print spooler to manage printing . The print spooler passes information to printers by recording the information and playing it back as a spool file, or by directly passing the information to the printer. The print spooler (an acronym created from “simultaneous print operations on line”) is actually a collection of DLLs that receives, processes, schedules and distributes documents for printing . The print spooler also maintains registry information for printer drivers, print providers, monitors, ports and print jobs. You can easily see that one the biggest challenges in a Terminal Server infrastructure is printing. There are many questions about why users cannot print, spoolsv or cpsvc crashes, blue screens on the servers and so on.

Let’s start with describing the main reasons which cause these challenges concerning printing.

Printer drivers are not written to be used on Terminal Servers

Finally, though, a lot of printer manufacturers see the necessity of developing their drivers to be used on Terminal Servers. But there are still printer drivers which are written for usage on a workstation by one user at the time. Printer drivers not written for Terminal Servers are, most of the time, not capable of handling so many printing jobs. When the driver becomes overwhelmed, this can cause the spooler services to crash, or even worse the operating system will blue screen. Happily, the most important manufacturers like HP, Xerox, Nashuatec and Lexmark build Terminal Server ready drivers, which are often tested by Microsoft.

Printjobs use a lot of bandwidth

Print jobs normally consume a large amount of bandwidth. This is not specifically related to Terminal Server environments, but most times it is a bigger issue when using Terminal Services. Because Terminal Services are used a lot when users need access from co-locations, home locations or supplier/customer offices where the bandwidth is limited to the location where the Terminal Servers are. Within environments with a small amount of bandwidth and lots of print jobs these jobs can use the full amount of bandwidth. This actually means that users are not able to work anymore because Terminal Server related traffic is brought to a stand still by the printer traffic.

Version conflicts by third party drivers

Often (especially with new printers) the Windows operating system doesn’t have the driver for that printer. To use all the functionality of that printer the driver made by the manufacturer must be used. It may happen that one new driver overwrites a DLL also used by another driver. It may also happen that the printers using the pre-existing DLL do not function anymore. Therefore every new printer driver must be tested extensively before using it a production environment.

All printer drivers need to be available on all Terminal Servers

The most important rule in the Terminal Server world is that all servers hosting the same applications must be 100% identical. This rule also applies to the printer drivers. It is a difficult job to keep all related files to printer drivers identical on all servers especially if you have lots of printer drivers.

Therefore Citrix developed the universal printer driver however for network printers (session printer policy) or situation where a native driver or 3rd.party driver must be used it is good to use the rules below when implementing them.

Do not use Kernel drivers

Within Windows 2003 Microsoft moved printer drivers from the kernel to the User mode. Of course this was a good move by Microsoft. If a printer driver is failing it will not cause a blue screen anymore. Although there are not many kernel drivers you should definitely check if the driver is a so called version 3 (usermode) drivers. Definitely do not install or support version 2 drivers anymore on your environment.

Use only certified drivers

All of the Microsoft-supplied printer drivers are tested with Terminal Services and guaranteed to work. Before using a third-party printer driver, make sure it has been certified for Terminal Services. There is a Windows Hardware Quality Labs (WHQL) program for getting third-party printer drivers certified on Terminal Services. Please ask your printer driver vendor to secure such certification.


All others are Vendor or 3rd. party printer drivers which needs to be certified or tested like HP does for use in Terminal Services/Citrix. Also notice that citrix is not certifying printer drivers.

http://www.windowsservercatalog.net/results.aspx?&bCatID=1326&cpID=&ocID=0&OR=1  (here the link where you could see if a driver went through the WHQL list and for which OS (Windows 2000 or Windows 2003) Some drivers are just for windows 2000 and are may causing problems in Windows2003.

http://support.citrix.com/article/CTX110571&searchID=40429004 (here the newest link of tested HP Drivers for WTS/Citrix)

Keep the amount of drivers low

Although you should add native drivers if necessary, try to limit the amount of drivers. This can be done by using the same driver for several printer types. Often the changes to the several printer types are marginal like the HP Laserjet 4xxx series. The different series works perfectly using a driver of a previous version. For example the HP Laserjet 4250 works fine using a HP Laserjet 4100 driver. A second possibility is checking the real manufacturer of the printer. Lots of printers use the same internal parts, but only the outside is little bit different. For example Ricoh manufactures for several printer suppliers. Often those printers use the same driver, because the base driver in the package is delivered by Ricoh. HP now also has a universal printer driver available, which supports almost all their printers. It is a good way to limit the amount of drivers, but please note that some people experience that some options are not supported. Nevertheless this looks like a promising solution if you are using lots of HP printers

Create a supported list of printers

If your IT Department does not have the control of purchasing the printers, you should definitely create a list of supported printers. In this list you should only mention printers that you can guarantee work perfectly within your environment. Of course you should keep the list up to date with new models, which you have tested and passed judgement on. In this way you can also keep the amount of drivers low.

Do not allow RDP auto created printer (if using Citrix Presentation Server)

This rule is one of the most important rules. The RDP Client is by default enabled in auto created client printers. Often administrators use this client to connect to the Terminal Servers for system management purposes. Because of the administrator rights the drivers which are locally available will be installed to support the auto created client printing functionally within the RDP protocol. Disable the support of this feature using a GPO policy.

Prevent normal users from adding printer drivers

Also prevent users from adding printer drivers. When using Citrix Presentation Server configure Citrix policies to use the universal printer driver if the native driver is unavailable (with auto created client printer) or make sure that the drivers on the print server, client and Terminal Servers are exactly the same.

As probably all know, one of the basic TS concepts is keeping your servers 100% identical. In this way users always experience the same behaviour when using their applications. For printer drivers the same concept is valid. If the drivers and driver settings are exactly the same on all your servers, the user print experiences are always identical. Citrix has a replicate function within the Citrix Management Console, but from practical experiences this is not the most reliable component. But with an easy script you can arrange this yourself. All drivers (information) are stored in one folder and two registry keys, so with an easy delete and copy command you can replicate the drivers and settings. What is needed is a driver package, which stores all the drivers for your environment.

StressPrinters could be help full to check/test your drivers. (locally on your workstation)

However keep in mind that Stressprinter doesn’t mean that the printer test the customer performs means now that the printers are working or are certified, it just simple only tests local printer Adds/Deletes, which is the usual trouble spot for multithreading issues. It does not test concurrent printer capabilities, settings, or actual printing calls., which are also a possible cause of printing crashes or issues with cpsvc.exe

http://support.citrix.com/article/CTX109374  StressPrinters 1.2 for 32-bit and 64-bit Platforms

Many driver problems in the Terminal Services environment revolve around poor multi-threaded performance, which in turn can cause Print Spooler instability. Problematic multi-threaded performance is usually exposed when multiple users connect to a Terminal Server simultaneously using the same print driver. Symptoms include the failure to autocreate client printers, increased thread count of the Printer Spooler and/or Citrix Print Manager services, and possibly the unresponsiveness and/or unexpected termination of these services (crashes).

This tool can be used to simulate multiple sessions autocreating printers using the same print driver.

It can also be used to compare the following among various drivers:

• CPU load incurred while creating a printer using a particular driver

• Time required to successfully create a printer using a particular driver

Few vendor links:



Brother: http://solutions.brother.com/metaframe/en_us/

Canon: http://apps.citrix.com/cdn/PartnerSolutions/canon/default.asp (CDN Login needed to view the page)



Oki: http://www.okidata.com/mkt/html/nf/PS_CitrixMetaFrame.html







Amyuni: no public link available, but Amyuni is providing a special driver version for Terminal Server / Citrix Environments

CIB pdf brewer





Tu l’as sorti d’où?

Le début ressemble à un vieil article du Technet: http://msdn2.microsoft.com/en-us/library/ms977140.aspx

La suite à une série d’articles de Wilco van bragt:



ça reste un bon article… Merci :slight_smile:

Très bonnes best practices merci Thin…

je l’ai sorti d’un mail envoyé par un collègue qui n’a pas cité ses sources :slight_smile: