TCP/IP printing (LPR) in Windows NT 4.0 Service Pack 2 (SP2) and earlier
defaults to using TCP ports 512-1,023. In Windows NT 4.0 Service Pack 3,
LPR defaults to using TCP ports 721-731, as described in RFC 1179 (Windows
NT 3.51 Service Pack 4 and earlier versions). In addition, LPR in Service
Pack 3 is now configurable through two registry entries, that enable the
use of TCP ports 1,024 and greater.
For more information setting LPR printers to be RFC compliant, click the following article number to view the article in the Microsoft Knowledge Base:
141708�
Printing to LPD Printer is slow or fails with Windows
Method 1
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756�
How to back up and restore the registry in Windows
In Service Pack 3, a new registry entry is automatically generated when a
new LPR port is created. This setting is defined on a per printer port
basis and defaults to 0, which is RFC compliant. To enable individual IP
address ports to use TCP ports 1024 and higher, apply Service Pack 3 and
then use the following steps:
- Start Registry Editor (Regedt32.exe) and go to the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\LPDSVC\lpr
- If the following value exists, double-click the entry. If the value does not already exist, on the Edit menu, click Add Value, and then type the following information:
Value Name: <IP address of LPR printer port>
Data Type : REG_DWORD
Value : 0 or 1
Value Type: Binary
0 = uses ports 721-731 (default)
1 = uses any port >1024
- Restart the Spooler service for the changes to take affect. At an MS-DOS command prompt type net stop spooler. To restart the Spooler service, at an MS-DOS command prompt type net start spooler.
Method 2
Windows NT 4.0 Service Pack 4 (SP4) and later enables a new registry value,
UseNonRFCSourcePorts, to configure LPR printers to use TCP ports higher
than 1,024 with one registry entry that will incorporate a global change.
Use this method on print servers that have a large number of LPR ports.
Note If all LPR ports were created prior to applying SP4 or later, an individual port entry exists in the registry for all LPR ports.
These individual ports take precedence over the global entry,
UseNonRFCSourcePorts, so these individual ports must be deleted from the
registry before the UseNonRFCSourcePorts global setting will work for all
LPR ports. The step-by-step instructions below will go through removing
these individual entries and adding the new entry.
Also note that the
UseNonRFCSourePorts
registry subkey must be set on the computer that will be sending the LPR jobs to an LPD server.
Obtain and apply SP4 or later, and then use the following steps
to enable this new registry key:
- Start Registry Editor (Regedt32.exe) and go to the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\LPDSVC\lpr
- On the Registry menu, click Save Key and type a filename.
- Delete the Lpr key to remove all of the individual IP address
entries.
- Select the LPDSVC key.
- On the Edit menu, click Add Key, and then in the Key Name box, type lpr.
- Select the newly created Lpr key.
- On the Edit menu, click Add Value, and then type the following information:
Value Name: UseNonRFCSourcePorts
Data Type: REG_DWORD
Value: 0 or 1
Value Type: Binary
0 = uses ports 721-731 (default)
1 = uses any port >1024
Note SP4 or later must be applied prior to restarting the Spooler in step 8. If you do not apply SP4 or later before you restart
the Spooler, the individual port entries are automatically recreated.
- Restart the Spooler service for the changes to take affect. At an MS-DOS command prompt type net stop spooler. To restart the Spooler service, at an MS-DOS command prompt type net start spooler, and then press ENTER.
In addition, you can use UseNonRFCSourcePorts in conjunction with the
individual port keys to specify an exception scenario where a specific LPR
port needs to be RFC compliant. After adding the UseNonRFCSourcePorts
entry, create an individual IP address port using method 1, setting the
default for that port back to 0.
If you create or have LPR ports and start the spooler service with SP3, a registry entry is created for each LPR port with a default value of 0. This is "RFC 1179" compliant. Changing this value to 1 makes it non "RFC 1179" compliant and allows for port usage 1024 or above.
If you then apply SP4 or later, the registry values have already been created and need to be reviewed in the case that you delete them and use server-wide settings. Adding new ports after SP4 or later does not automatically create port-specific entries.
With SP4 or later installed, UseNonRFCSourcePorts sets the RFC 1179 compliance to 0 (721-731) and off to 1(>1023). However, entries for individual printers are exceptions to this rule.
Windows 2000
Windows 2000 includes an improved port monitor that accomplishes the same results as making the registry changes noted above. The Microsoft Standard Port Monitor (SPM) allows for more dynamic IP printing. SPM uses port 9100 by default, but uses non-RFC source port LPR (ports greater than 1024) as a fallback.
If you have upgraded to Windows 2000 from an earlier version of Windows NT, you can convert your existing LPR ports to the SPM by running the Portconv.vbs tool located in the Windows 2000 Resource Kit. Note that the supporting documentation for this is located in the Prnadmin.doc file.
For more information about SPM please see Windows 2000 Help, click the following article number to view the article in the Microsoft Knowledge Base:
246868�
TCP/IP printing options in Windows 2000 Standard Port Monitor
LPR:
LPR Ports can be configured on a Windows 2000 Server after Print Services for Unix has been installed in the Other Network File and Print Services section of the Add/Remove Windows Components wizard in Add/Remove Programs. If you are configuring a LPR port (not a Standard TCP/IP Port), this port will default to the LPR RFC Source and Destination ports (TCP:721-731, TCP:515). Both of the registry keys discussed in this article work in Windows 2000 and can be used separately or together to set LPR ports to use RFC or non-RFC source ports for the whole spooler or just individual LPR ports.
Standard TCP/IP Port:
Windows 2000 includes an improved port monitor that communicates with a print server device like a JetDirect card over Source Ports >1024 and the destination port 9100. The Microsoft Standard Port Monitor (SPM) allows for more dynamic IP printing. Though SPM uses Destination Port 9100 by default it will change down to Destionation Port 515 if configured to do so, or if the target device will not support Destination Port 9100.
If you have upgraded to Windows 2000 from an earlier version of Windows NT, you can convert your existing LPR ports to the SPM by running the Portconv.vbs tool located in the Windows 2000 Resource Kit. Note that the supporting documentation for this is located in the Prnadmin.doc file.
For more information about SPM, click the following article number to view the article in the Microsoft Knowledge Base:
246868�
TCP/IP printing options in Windows 2000 Standard Port Monitor
Note AIX may randomly stop printing to Windows 2000 Line Printer Daemon (LPD). This issue occurs because AIX 4.3.3 patch level 8 is not RFC1179-compliant. For AIX to print to Windows 2000 LPD, create the following registry value:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\LPDSVC\lpr
Value name: UseNonRFCSourcePorts
Value Data: 1
For more information about AIX printing to Windows 2000 over a Wide Area Network (WAN), click the following article number to view the article in the Microsoft Knowledge Base:
280344�
Large print jobs time out after 60 seconds in Windows Server 2003 and in Windows 2000 Server
283014�
Windows 2000 Lprmon does not restart job if it receives a "Nack" after sending a data file