Product Documentation

Configuring and Maintaining XenApp Printing

May 08, 2015
Most XenApp printing functions are configured through the following Citrix policy categories and settings:
  • Client printers. The settings in this category affect the client redirected printers and printing using the client printing pathway.
  • Drivers. The settings in this category control driver management.
  • Printer redirection bandwidth limit. This setting restricts the bandwidth allocated to printers.
  • Session printers. This setting configures how network printers are provisioned.

If you do not enable any settings that affect printing, XenApp uses the default printing behavior that is described in Planning Your Printing Configuration.

Printing settings follow standard Citrix policy behavior:

  • Printing settings are evaluated during initial logon and remain in force throughout the session. Any new printers added to a policy or a user device during a session do not appear in the session until the user logs off and logs on, creating a new session.
  • The policies are filtered on standard objects that apply to all Citrix policy settings. Therefore, when configuring printing settings, determine which filter objects best achieve your goals. Filtering on Client Device Name is useful if you are trying to configure proximity printing. Filtering on Client IP address is useful when associating network printers with specific workstations.

Policy prioritization

All printing policy settings follow standard XenApp prioritization. Citrix policies always take precedence over Windows policies in a XenApp environment.

Policy maintenance

Changes in your network often result in the need to update printing policy configurations. For example, users changing departments or workstation locations require that you update the printing policies associated with that user. Adding or removing printers from your network require that you update any configured Session printers policy settings.

Configuring Printer Autocreation Settings

Configure the Citrix policy setting Auto-create client printers to control how or if printers are created automatically at the start of sessions. By default, this setting is not enabled, so XenApp creates all printers on the user device.

To modify printer auto-creation behavior

Configure one of the following in the Auto-create client printers setting:

  • Do not auto-create client printers. Client printers are not auto-created.
  • Auto-create the client’s default printer only. Only the client’s default printer attached to or mapped from the client preconfigured in the Control Panel is auto-created in the session.
  • Auto-create local (non-network) client printers only. Any non-network printers attached to the client device preconfigured in the Control Panel are auto-created in the session.
  • Auto-create all client printers. All network printers and any printers attached to or mapped from the user device preconfigured in the Control Panel are auto-created in the session.

To configure legacy client printer support

To auto-create client printers with legacy printer names and preserve backward compatibility for users or groups using MetaFrame 3.0 or earlier, choose the Legacy printer names option from the Citrix policy Client printer names setting.

Configuring Citrix Universal Printing

There are several different Universal Printing solutions. You can configure:

  • Citrix XPS Universal Printer driver
  • Citrix Universal Printer driver, which is EMF-based
  • Auto-created Citrix Universal Printer with a Citrix Universal printer driver

Configuring only a Universal printer driver will not improve session start time (printers on the client device are still enumerated and auto-created at the beginning of sessions). However, configuring a Universal printer driver does improve printer driver performance.

To configure universal printing

Configure the Citrix policy setting Universal Printing by using the following settings:
  • Auto-create generic universal printer. Enables or disables the auto-creation of the Citrix Universal Printer generic printing object. By default, generic universal printers are not auto-created.
  • Universal driver priority. Specifies the order in which XenApp attempts to use universal printer drivers, beginning with the first entry in the list. You can add, edit, or remove drivers and change the order of the drivers in the list.
  • Universal printing. Specifies when to use universal printing.
  • Universal printing preview preference. Specifies whether to use the print preview function for auto-created or generic universal printers.

To change the default settings on the Universal Printer

You can change the default settings for the Citrix Universal Printer, including settings for paper size, paper width, print quality, color, duplex, and the number of copies. You override the default settings of the Citrix Universal Printer and modify these settings by manually setting registry keys. For a list of the specific registry values, see the Citrix Knowledge Center.

For more information, see Configuring Universal Printer Drivers on Farm Servers.

Configuring Network Printers for Users

If automatic printer creation fails for network printers on a client device or for session printers because the corresponding drivers are not installed automatically by Windows (because you configured a policy setting preventing auto-installation or they are third-party drivers), you must add the corresponding drivers to your farm servers manually.

  1. Add printers to the XenApp server by manually installing the printers. You can use the Add Printer wizard in Windows or browse to the server on which the printer is installed and double click the printer, which forces Windows to place the drivers in its local driver store.
  2. Delete the printers. Deleting the printers ensures that they are created only when intended; that is, only if the client has that network printer installed or the GPO with Session printers configured uses filtering and applies to only a subset of all users of the XenApp server.

To add a network printer while configuring the Session printers setting

In the Citrix policy setting for Session printers, add a network printer using one of the following methods:

  • Printer UNC path. Enter the path using the format \\servername\printername.
  • Browse. Locate a printer on the network.
  • Browse for printers on a specific server. Enter the server name using the format \\servername and click Browse.
Important: The server merges all enabled session printer settings for all applied policies, starting from the highest to lowest priorities. When a printer is configured in multiple policy objects, custom default settings are taken from only the highest priority policy object in which that printer is configured.

To specify a default printer for a session

To specify a network printer, it must already be added to the policy in which you are enabling the Citrix policy setting Default printer.
  1. Complete the procedure, To add a network printer while configuring the Session printers setting.
  2. On the Default printer settings page, from the Choose client’s default printer drop-down list, choose one of the following:
    • Name of the network printer you want to be default for this policy. Printers that were added with the Session printers policy setting are displayed in this drop-down menu and can be specified as the default printer.
    • Set default printer to the client’s main printer. Sets the default printer for the session to the client’s current default printer. If the client's main printer is not mapped, this option has no effect.
      Important: Mapping for the client’s main printer can also be disabled through other policies, group policies, or Remote Desktop Services settings.
    • Do not adjust the user’s default printer. Uses the current Remote Desktop Services or Windows user profile setting for the default printer. If you choose this option, the default printer is not saved in the profile and it does not change according to other session or client properties. You can use this option to present users with the nearest printer through profile settings (functionality known as Proximity Printing).

      When Do not adjust the user’s default printer is selected, the default printer in a session will be the first printer autocreated in the session, which is either:

      • The first printer added locally to the Windows server in the Control Panel
      • The first autocreated printer, if there are no printers added locally to the server
  3. Apply the policy to the group of users (or other filtered objects) you want to affect.

To edit the printer settings in the sessions policy

  1. On the Session printers settings page, select the name of the printer for which you want to modify the settings.
  2. Click Settings.
  3. Check Apply customized settings.
  4. Change the settings for Paper Size, Copy Count, Print Quality, and Orientation.
  5. To ensure that the settings you specify here are restored in concurrent sessions even if users modify them in their initial session, select the Apply customized settings at every logon check box.

    This check box applies to additional sessions opened while the user’s first session is still active.

    Important: The type of Windows profiles configured in your environment change the effect of settings. For more information, see Controlling Printing Settings and User Preferences.

    If you clear this check box and a user opens his or her initial session, changes these printer settings, and then opens a second session (while the first session is still active), the settings you specified in this dialog box are not carried over to the second session.

    For example, if you specified Landscape as a custom Orientation setting, the check box is selected, a user starts a session (Session1), the user changes the Orientation to Portrait, and then starts another simultaneous session (Session2), Session2 uses your custom settings and the Orientation is Landscape. If you clear Apply customized settings at every logon, XenApp carries the user’s changes into Session2 so the Orientation is Portrait.

    After clicking OK, the Settings value in the list of printers on Session printers page changes to Modified.

To configure server local printers

To let users connecting to the farm print to a printer that is local to a farm server, physically connect the printer to a farm server and share it as follows:

  1. On the server where the printer is physically connected, in Control Panel > Hardware > Devices and Printers, right-click the printer you want to share.
  2. Choose Printer Properties.
  3. In the Sharing tab, select these check boxes:
    • Share this printer
    • Render print jobs on client computers
    Sharing the printer allows creation of the printer when a session on that server is launched.

Configuring Printers for Mobile Workers

When you want to make sure that users always see the closest printer to their client device in a session, configure the Proximity printing solution. Proximity printing enables users within a specified IP address range to automatically access the network printing devices that exist within that same range.

The ability to configure proximity printing assumes that your network is designed as follows:
  • It uses a DHCP server to assign your users’ IP addresses by their location (for example, floor of a building)
  • All departments/floors within the company have unique designated IP address ranges
  • Network printers are assigned IP addresses within the range of IP addresses for the department/floor in which they are located

To configure Proximity Printing using IP addresses

  1. Create a separate policy for each subnet (or to correspond with printer location).
  2. In each policy, add the printers in that subnet’s geographic location to the Session printers setting.
  3. Set the Default printer setting to Do not adjust the user's default printer.
  4. Filter the policies by Client IP address.

Changing Network Print Job Routing

By default, XenApp routes jobs to network printers from the application server directly to the print server (along the network printing pathway).

Note: Print jobs sent over the network printing pathway are not compressed. When routing printing jobs across a network with limited bandwidth, Citrix recommends routing jobs through the client device so that the ICA protocol compresses the jobs. To do so, disable the Citrix policy setting Direct connection to print servers.

Providing Tools for User Provisioning

The following groups of users cannot add printers to sessions unless you publish printer provisioning tools for them:

  • Windows users who do not have access to the Add Printer wizard on the local client device or any applications that let them browse to printers
  • Non-Windows plug-in users

If you want these users to add printers on their own, publish either:

  • The ICA Client Printer Configuration Tool (PrintCfg.exe). This tool lets Windows CE and DOS users add printers.
  • The Add Printer wizard. Publishing this Windows wizard lets users with Windows plug-ins add printers that are on the local client device or network. Publishing this wizard is also referred to sometimes as publishing the Print Manager.

After a user adds printers using either of these methods, XenApp retains the printer information for the next time a user logs on from that client device. Client printers created using this process are considered retained printers.

To publish the Windows Add Printer wizard

This procedure assumes that you already published Windows Explorer on the server on which you want to publish the Add Printer wizard.
  1. Create the following folder at the root level of one of the XenApp server’s drives: C:\Printers.{2227A280-3AEA-1069-A2DE-08002B30309D} where C represents a drive on the XenApp server.

    When you press Enter, the folder icon changes to a printer icon.

  2. Create a published application with the following properties:

    Command line. “Path of explorer.exe” C:\Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}

    Working directory. The path where explorer.exe is located.

    If you get a path error and cannot access the published printers folder, modify the command line to include %*. For example,

    Command line. “Path of explorer.exe” %*C:\Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}

To publish the ICA Client Printer Configuration Tool

  1. Follow the instructions for publishing an application in To publish the Windows Add Printer wizard.
  2. On the Location page, enter the path for the ICA Client Printer Configuration tool (printcfg.exe) on your server.

    On a 64-bit system, the default location for the tool is C:\Program Files (x86)\Citrix\system32\printcfg.exe.

    On a 32-bit system, the default location for the tool is C:\Program Files\Citrix\system32\printcfg.exe.

To store users’ printer properties

To store user printer properties, configure the Citrix policy setting Printer properties retention by choosing from the following settings:

  • Held in profile only if not saved on client. Selected by default. Allows the system to determine the method. It stores printer properties on the client device, if available, or if not, in the user profile. Although this option is the most flexible, it can also slow logon time and use extra bandwidth to perform the needed system-checking.

    Choose this option if your server farm requires backward compatibility with prior versions of XenApp and its plug-ins and is not constrained by bandwidth or logon performance.

  • Saved on the client device only. Stores printer properties only on the client device. If users are assigned a Remote Desktop Services mandatory profile or roaming profile, select this option.
  • Retained in user profile only. Stores printer properties in the user profile on the server and prevents any properties exchange with the client device. This option is useful if your system is constrained by bandwidth (this option reduces network traffic) and logon speed or your users use legacy plug-ins. Use this option with MetaFrame Presentation Server 3.0 or earlier and MetaFrame Presentation Server Client 8.x or earlier. Note that this is applicable only if a Remote Desktop Services roaming profile is used.
  • Do not retain printer properties. Does not retain printer properties.

To synchronize properties from the printer

To obtain printer properties directly from the printer itself, rather than from the properties store, use the following procedure. This procedure ensures that changes made offline to printers on the local computer are used next time a user starts a session.
Caution: Editing the Registry incorrectly can cause serious problems that may require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.
  1. Open the Registry Editor and navigate to one of the following registry locations:
    • For 64-bit, HKLM\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Preferences
    • For 32-bit, HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Preferences
  2. Create the following registry key: Name:Win32FavorRetainedPrinterSettings Data Type: REG_SZ Value Data: false
  3. Restart the Citrix Print Manager Service.

Controlling Printer Driver Automatic Installation

Managing printer drivers is important for a successful printing experience. When XenApp auto-creates printers, it determines if their corresponding drivers are missing. By default, XenApp installs any missing printer drivers from the Windows native printer driver set. If a problematic printer driver is installed automatically, it can cause issues.

You can either prevent printer drivers from being installed automatically, or, if you want to have them installed automatically, you can control what drivers are installed on farm servers by specifying the drivers on a compatibility list:

  • If you know what printer drivers cause problems, you can specify banned printer drivers in the compatibility list
  • If you do not know what drivers cause problems or you want tighter control over the drivers on the farm, specify to install only drivers on the compatibility list
When users log on:
  • XenApp checks the client printer driver compatibility list before it sets up the client printers
  • If a printer driver is on the list of drivers that are not allowed, XenApp does not set up the printer unless the Universal Printing policy setting is enabled
  • When the compatibility list prevents setup of a client printer, XenApp writes a message in the server’s Event log

To prevent drivers from being installed automatically, configure the Citrix policy setting Automatic installation of in-box printer drivers.

To specify how client printer drivers are installed on XenApp servers

To specify how client printer drivers are installed on the XenApp servers, configure the following Citrix policy settings:

  • Automatic installation of in-box printer drivers. Controls whether printer drivers from the Windows in-box driver set or from driver packages staged on the host using pnputil.exe /a are automatically installed when auto-creating either a client or network printer. By default, these drivers are installed as needed. Disabling this setting prevents the automatic installation of printer drivers.
  • Printer driver mapping and compatibility. Lists driver substitution settings for auto-created printers. Allows or prevents printers to be created with the specified driver. Additionally, you can allow created printers to use only universal printer drivers.

To control the automatic installation of printer drivers

Configure the Citrix policy setting Automatic installation of in-box printer drivers (enabled by default). This setting allows XenApp to install Windows native printer drivers (the Windows in-box driver set or from driver packages staged on the host using pnputil.exe /a) automatically when auto-creating either a client or network printer.
Caution: Enabling this option might result in the installation of a large number of native drivers.

To add or remove drivers or edit driver names in the compatibility list

Configure the Citrix policy setting Printer driver mapping and compatibility to specify whether printers can be created with specific drivers or not or with universal printer drivers. You can use this setting to add a driver mapping, edit an existing mapping, remove a mapping, or change the order of driver entries in the list.

You can turn the Printer driver mapping and compatibility setting into a whitelist by specifying only the allowed drivers, adding an additional entry using a wildcard * for the driver name, and specifying Do not create for all drivers other than those specified. Alternatively, you can use the Create with universal driver only option in the setting to allow only universal drivers for drivers that are not explicitly specified.

Configuring Universal Printer Drivers on Farm Servers

If you configure a Universal printer driver for sessions, by default, XenApp always uses the Citrix Universal (EMF) Printer driver, when it is available. If it is not available, XenApp uses the XPS Universal Printer driver. The XPS Universal printer driver can be configured as the default by configuring the Citrix policy setting Universal driver priority.

The Citrix Universal printer drivers are listed in the Print Management MMC snap-in. Provided all prerequisites for the driver were installed when you ran XenApp Setup, the following drivers appear:
  • Citrix Universal Printer, which is the .EMF driver
  • Citrix XPS Universal Printer
  • HP Color LaserJet 2800 PS (Citrix PS Universal Printer Driver)

If you need a Universal driver that does not appear in this list, you must install it.

To specify the Universal Printer driver for sessions

Configure the Citrix policy setting Universal printing by choosing one of the following:

  • Use only printer model specific drivers. Specifies that the client printer uses only the native drivers that are autocreated at logon. If the native driver of the printer is unavailable, the client printer cannot be autocreated.
  • Use universal printing only. Specifies that the client printer uses the universal printer driver only. Select this option if you do not want to use native drivers.
  • Use universal printing only if requested driver is unavailable. Uses native drivers for client printers if they are available. If the driver is not available on the server, the client printer is created automatically with the highest available universal driver, as specified in the Universal driver priority policy setting.
  • Use printer model specific drivers only if universal printing is unavailable. Specifies that the client printer uses universal printer driver if it is available. If the driver is not available on the server, the client printer is created automatically with the appropriate native printer driver.

To change the default Citrix Universal Printer driver

To force XenApp to use the Citrix XPS Universal Printer driver before the EMF-based Citrix Universal Printer driver, configure the Citrix policy setting Universal driver priority and move XPS to the top of the list.

Mapping Client Printer Drivers

If the servers in your farm have the same drivers as the client printers but the drivers themselves are named differently (for example, “HP LaserJet 4L” versus “HP LaserJet 4”), XenApp may not recognize the drivers are the same and users will have difficulty printing or printer autocreation may fail.

You can resolve this issue by overriding, or mapping, the printer driver name the client provides and substituting an equivalent driver on the server. Mapping client printer drivers gives server applications access to client printers that have the same drivers as the server but different driver names.

You can use the printer driver remapping feature to substitute:
  • Good printer drivers for outdated or corrupted drivers
  • Specific Windows printer drivers for manufacturer’s client printer drivers
  • A driver that is available on Windows server for a client driver name

Each client provides information about client-side printers during logon, including the printer model name. During client printer autocreation, Windows server printer driver names are selected that correspond to the printer model names provided by the client. The autocreation process then employs the identified, available printer drivers to construct redirected client print queues.

To map client printer drivers to server printer drivers

Configure the Citrix policy setting Printer driver mapping and compatibility by adding the client printer driver name and selecting the server driver that you want to substitute for the client printer driver from the Find printer driver menu. You can use wildcards in this setting. For example, to force all HP printers to use a specific driver, specify HP* in the policy setting.

To edit printing settings for mapped client printer drivers

After you have added a client printer driver to the list of mapped drivers, you can modify the printing settings for the driver. This setting overrides retained printer settings the user set during a previous session.

You can set print quality, orientation, color, duplex, scale, copy count, TrueType option, and paper size. If you specify a printing option that the printer driver does not support, that option has no effect.

  1. On the Printer driver mapping and compatibility settings page, select the printer driver for which you want to modify the settings.
  2. Click Settings.
  3. Specify the printer settings.

Improving Session Performance by Limiting Printing Bandwidth

While printing files from published applications to client printers, other virtual channels (such as video) may experience decreased performance due to competition for bandwidth especially if users are accessing servers through slower networks or dial-up connections. To prevent such degradation, you can limit the bandwidth used by client printing.
Important: The printer bandwidth limit is always enforced, even when no other channels are in use.

By limiting the data transmission rate for printing, you make more bandwidth available in the ICA data stream for transmission of video, keystrokes, and mouse data. More available bandwidth can help prevent degradation of the user experience during printing.

There are two ways you can limit printing bandwidth in client sessions using printer settings in the Bandwidth category:

  • Use the Citrix policy Bandwidth printer settings in the Delivery Services Console to enable and disable the printing bandwidth session limit for the farm.
  • Use individual server settings to limit printing bandwidth in the server farm. You can perform this task using gpedit.msc locally on each server to configure the Citrix policy Bandwidth printer settings.

You can use the Citrix Session Monitoring and Control Console (included in the WFAPI SDK) to obtain real-time information about printing bandwidth. The print spooling virtual channel control (that is, the CTXCPM Client printer mapping virtual channel control) lets you set a priority and bandwidth limit for bandwidth control of this virtual channel.

To configure a printing bandwidth setting in an existing policy

Configure one of the options in the Citrix policy Bandwidth setting. If you enter values for both settings, the most restrictive setting (with the lower value) is applied.

  • Printer redirection bandwidth limit to specify the bandwidth available for printing in kilobits per second (kbps).
  • Printer redirection bandwidth limit percent to limit the bandwidth available for printing to a percentage of the overall bandwidth available.
    Note: If you want to specify bandwidth as a percentage using the Printer redirection bandwidth limit percent setting, you must enable the Overall session bandwidth limit as well.

To limit printer bandwidth for a server

Using the Window Group Policy Editor locally on a server, configure one of the options in the Citrix policy Bandwidth setting. If you enter values for both settings, the most restrictive setting (with the lower value) is applied.

  • Printer redirection bandwidth limit to specify the bandwidth available for printing in kilobits per second (kbps).
  • Printer redirection bandwidth limit percent to limit the bandwidth available for printing to a percentage of the overall bandwidth available.
    Note: If you want to specify bandwidth as a percentage using the Printer redirection bandwidth limit percent setting, you must enable the Overall session bandwidth limit as well.

Displaying Printers

The following table summarizes where you can manage and modify print queues and display printers in a XenApp environment. For definitions of the terms client printing pathway and network printing pathway, see Overview of Client and Network Printing Pathways. Client printing pathway is not synonymous with printers attached to client devices.

  Printing Pathway UAC Enabled? Location
Client printers (Printers attached to the client device) Client printing pathway On Print Management snap-in in the Microsoft Management Console
Off Control Panel
Network printers (Printers on a network print server) Client printing pathway On Print Management snap-in in the Microsoft Management Console
Off Control Panel
Network printers (Printers on a network print server) Network printing pathway On Print Server > Print Management snap-in in the Microsoft Management Console
Off Print Server > Control Panel
Server local printers (Shared printers locally attached to a XenApp server) N/A On Control Panel
Off Control Panel
Local network server printers (Printers from a network print server that are added to server running XenApp) Network printing pathway On Control Panel
Off Control Panel

Managing Printers Using the Network Printing Pathway

If you want to modify or manage a user’s network print queue that a user printed to across the network printing pathway, you must manage it through Control Panel on the print server with the correct level of Windows administrator privileges. Print queues for network printers that use the network printing pathway are private and cannot be managed through XenApp.

Whenever you configure a network printing pathway and the server hosting the application does not have or cannot install the driver, by default, XenApp sends the print job along the client printing pathway. You can tell a job sent to the network printer is redirected along the client printing pathway when you see printers appearing in the Windows Server Manager Snap-in > Print and Document Services role that has the following syntax:

PrinterName on PrintServer (from clientname) in session n

where:

PrinterName is the name of the printer being redirected

PrintServer is the name of the print server with which the printer is associated

clientname is the name of the client through which the print job is being rerouted

n is the session ID for that ICA connection

For example, Dell Laser Printer 1710n Ps3 on 3r41-2 (from 3R39-2) in session 2.

Displaying Printers Using the Client Printing Pathway

If UAC is not enabled, you can, however, display and manage redirected client print queues and server local printers through Control Panel > Printers of individual servers. The client printers displayed on a server fluctuate based on what sessions are active on a server because XenApp creates these printers based on the printers on the connecting client devices. You can display client printers in Control Panel > Printers.

To display printers that use the client printing pathway when UAC is enabled

  1. On the XenApp server that is hosting the session for which you want to display the printers, install the Print Services server role.
  2. In Administrative Tools, open the Print Management stand-alone snap-in.
  3. To display client redirected printers, in the Print Management tree, select Print Management > Custom Filters > All Printers. The Print Management snap-in displays the client printers redirected from all clients connected to that server. You can display and manage the print queues for these printers and select Printers With Jobs in the Print Management Tree to display active jobs on redirected printers.

To display printers that use the client printing pathway without UAC enabled

  1. On the XenApp server, open Control Panel > Printers.
The Printers screen displays the local printers mapped to the ICA session. By default, the name of the printer takes the form printername (from clientname) in session x; for example, “printer01 (from machine01) in session 7.” Printername is the name of the printer on the client device, clientname is the unique name given to the client device or the Web Interface, and x is the SessionID of the user’s session on the server.