Setting up Network Printer Ports: Difference between revisions

From SambaWiki
Line 20: Line 20:
* You can write a script that generates the port names from configuration files, databases, or other sources.
* You can write a script that generates the port names from configuration files, databases, or other sources.


* It's possible to use the enumport script so that the windows driver can communicate with the printer (snmp, automatic discovery of installed options or authentication before printing...). For example:
* It's possible to use the enumport script so that the windows driver can communicate with the printer (snmp, automatic discovery of the real printer model, automatic discovery of installed options on the printer or authentication before printing...). For example:


#!/bin/bash
#!/bin/bash

Revision as of 16:40, 2 March 2023

Introduction

In Windows, printers must have a port assigned. This can be a local port, such as LPT1, or for example for a remote port, LPD Port Monitor. Per default, Samba auto-generates the Samba Printer Port for all shared printers. However, in certain scenarios, you require to use unique port names.



How Samba Provides Custom Ports to the Windows Hosts

Samba enables you to use a script that outputs only the port names:

  • The script can only output the port names by using echo commands. For example:
#!/bin/bash
echo "DemoPrinter1"
echo "DemoPrinter2"
echo "DemoPrinter3"
  • You can write a script that generates the port names from configuration files, databases, or other sources.
  • It's possible to use the enumport script so that the windows driver can communicate with the printer (snmp, automatic discovery of the real printer model, automatic discovery of installed options on the printer or authentication before printing...). For example:
#!/bin/bash
echo "\\\\IP_address_of_DemoPrinter1"
echo "\\\\IP_address_of_DemoPrinter2"
echo "\\\\IP_address_of_DemoPrinter3"

Setting up Printer Ports

To enable Samba to display individual printer ports:

  • Make the script executable:
# chmod 755 /usr/local/bin/samba-ports.sh
  • Add the following parameter to the [global] section in your smb.conf file:
enumports command = /usr/local/bin/samba-ports.sh
  • Reload Samba:
# smbcontrol all reload-config

The ports are now usable in the properties when preconfiguring a printer.

Printer Ports.png

For details, see Preconfiguring a Printer.