A manual printer queue is added through the Add Printers option in Printers in Control Panel within the session. These queues can be created only by Administrators or Power Users. It is not possible to delegate the right to create manual printer queues outside of membership in these built-in groups.
When attaching a printer to a port, the administrator uses the client computer name to select the printer port from the list of available ports in the Add Printer wizard. Ports for all clients currently connected to the server appear in the Port list. The correct TS port for the printer can be identified by the port “description” field in the Add Printer Wizard ports page. The port name uses the following format (xxx is the port number):
x > where Port is “LPT” or “COM” and x is the client-side port number.
Attaching to a printer port with TSxxx:
Attaching a printer to a port of the format
is strongly discouraged and is not a supported scenario. This is because the server component does not keep these ports in its internal list of devices and therefore does not listen on notifications for printers attached to these ports. In addition, when a client disconnects or ends a session, all redirected printer queues are deleted in the session; however, because the server component does not know about these printers, they will remain until they are manually deleted. Another possibility is that some other automatic printer queues may be associated with the same ports, causing one client’s output to be sent to another TS user’s local printer.
Driver String Mapping for Printer Queues
The concept of driver strings and their use in redirection is extremely important in a Terminal Server environment where clients can connect with an assortment of models and makes of printers. The NTPRINT.INF file is the primary source for matching incoming string names for connecting clients out of the box. The driver string name is also the friendly name that is displayed in the Name column on the Drivers tab (reached by selecting File, Server properties in the Printers folder). For more information and real-world examples of driver string name-based issues, see Common Problems.
As a best practice, you should always try to use matching string names.
Automatic printer redirection works well when there is an exact match on the server for the client-side printer driver name. However, the following scenarios illustrate situations when there may not be an exact match on the server for the client-side driver name.
The client is running Windows NT or Windows 9x and the client-side driver shipped post–Windows 2000.
The client is running Windows 9x and there is no matching driver name on the server, or there is a new OEM-supplied driver for a specific printer.
The client (regardless of OS version) is using an OEM-supplied driver.
The server’s administrator can pre-install a driver on the Windows 2000 server that matches the print queue attached to the client machine. To pre-install the server-side driver, use the Drivers tab of the Print Server Properties dialog.
If, after pre-installing a server-side driver, the client-side and the server-side driver names match when the client connects, local printer redirection automatically creates a server-side queue. For Windows NT clients and servers, the first scenario can almost always be handled this way.
For Windows 9x clients, there is a possibility that the name of the pre-installed driver doesn’t match the client-side driver name, or that an exactly matching driver for Win2K doesn’t exist. The administrator can create a custom .INF file to force mismatched driver strings to work together.
CAUTION: Forcing drivers whose string names do not match by default will cause printing problems in some scenarios. To find a substitute driver that works correctly, you might need to consult the manufacturer of the device. You should thoroughly test any substitute drivers on the Windows 2000 Terminal Server side to ensure that they can send printable data to clients’ redirected printers that use different drivers.
The following excerpt is from Q239088 Events 1111, 1105, and 1106 on Terminal Services Server, which can be found at the following location:
"HP DeskJet 720C Series v10.3" = "HP DeskJet 722C"
This file can be created with Notepad and must be saved with a .INF file extension. In this example, you would specify the .INF filename that you just created in the PrinterMappingINFName registry value and "Printers" in the PrinterMappingINFSection registry value.
The custom .INF file instructs Windows 2000 to use the HP DeskJet 722C driver when a client with Hewlett-Packard's HP DeskJet 720C Series v10.3 driver connects. These names must match exactly, with identical spacing; the names are also case-sensitive.
The administrator must pre-install the OEM driver on the server before the redirection attempt. Otherwise, the redirection attempt will fail.