Most Citrix Engineers have come across the inherent problems with many of the HP print drivers used within a Terminal Server/Citrix environment (especially the PCL 6 drivers). The question is how do you address the problem once the cat is out of the bag, and a faulty print driver has been introduced into your Citrix environment. Or what happens if your office has standardized on certain models of HP printers, and it is imperative that you resolve the driver issue for your proposed Citrix solution to fly. There are several options available, and depending on the size, complexity, and/or design of your environment, you will need to apply the solution that best fits for your needs:
1) Redirect the new faulty driver to a known good driver
There is a solution that exists for Terminal Server 4.0 that involves driver redirection. In this solution If an attempt is made by an ICA client to map a driver that you are aware to be problematic, the server can use an INF file to map an alternate, compatible driver instead. The INF file that the server uses for this purpose is the WTSUPRN.INF file (YouÆll probably find this file as a text file within the serverÆs WTSRV\SYSTEM32 directory). Citrix has published an article pertaining to this problem (Citrix document ID: CTX626451). I contacted Citrix, and their official recommendation is to use solely the print drivers which came included with Terminal Server. Any newly released printers added to a Terminal Server environment, should have a redirection performed on the new print driver pointing to an older, compatible driver. This does not mean that that every new print driver developed will not work on Terminal Server, just that Citrix cannot guarantee it. If you need to use the a new print driver in your environment, follow CitrixEngineer's advice, load it on a test environment before releasing it into your production environment. Microsoft also has an article # Q221509 discussing this issue. The article can be accessed through the following link:
This option does involve Registry tinkering , so approach this solution with caution. Windows NT Terminal Server lists its loaded print drivers within the HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\ENVIRONMENTS\ WINDOWS NT x86\DRIVERS\VERSION-2 Key. Within this key, you can perform the following:
- document the files associated with the driver that are listed within the registry key (printscreen usually works nicely) - Delete the associated key - Stop the spooler service and set startup to manual - Reboot the machine - Delete the files associated with the driver within the system32\spool\drivers\w32x86\2 , or 3 folder - Map to TSE drivers found in Citrix Document CTX626451
3) Prevent Terminal Server from installing print drivers from print servers.
There may be times that a clientÆs default printer is a network printer created on a dedicated print server. In this event, when the client connects to a Citrix server, server will attempt to download this driver from the Print Server directly. At times, this is not desirable as the driver may function fine for direct prints from Windows 95 stations, but is problematic off of Terminal Server environments. In this case, you can add a registry key onto Terminal Server to instuct it to solely install print drivers located within a trusted share that is specified. The Microsoft article # Q239536 discussing this issue can be found on the following link:
I have pasted the instructions for the sake of convenience:
Microsoft Document *********************
In Windows NT you can install printer drivers from a trusted share, rather than from the remote print server to which your print service is connected. MORE INFORMATION WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.
For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT or Windows 2000, you should also update your Emergency Repair Disk (ERD).
To install printer drivers from a trusted source: 1. Start Registry Editor (Regedt32.exe).
2. Locate the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers 3. On the Edit menu, click Add Value, and then add the following value:
Value Name: LoadTrustedDrivers Data Type: REG_DWORD Value: 1
A value of 1 indicates that drivers can be installed only from the trusted print server shares specified by the TrustedDriverPath value. 4. On the Edit menu, click Add Value, and then add the following value:
Value Name: TrustedDriverPath Data Type: REG_SZ = \\servername\sharename where servername is the name of the appropriate server and sharename is the name of the appropriate share.
This value specifies the path to trusted print server shares from which you can install printer drivers. If the LoadTrustedDrivers value is 1, you can only install drivers from the server shares located in the path specified in the value of this entry.
5. Quit Registry Editor, and then restart your computer.
To obtain a set of trusted files, you must install a driver on a computer one time. If you install printer drivers for a Windows NT 4.0 Intel system, the following structure exists: %SystemRoot%\System32\Spool\Drivers\W32x86\2 You must copy the files from this folder into the \2 subfolder of the trusted driver share. For example, if the share is located in the C:\Tmp folder and the share name is "ins," the structure is C:\Tmp\2 and you must type the following path into the registry:
******************** End of Microsoft Document
Hope this information helps out some of you. I have had to use it a number of times.