[Samba] Problems with print driver information stored in ntprinters.tdb

Justin Chevrier jchevrier at city.kawarthalakes.on.ca
Thu Aug 23 18:55:03 GMT 2007


Hi Guys,
 
I've have an issue (or perhaps more accurately a feature) with my
production system running Samba 3.0.24 (Cups 1.2.9). We do not make use
of server side print drivers, the reason for this is below. We therefore
install drivers manually on our client systems. The issue that has
arisen lately is that when a printer is added to a client workstation,
Samba somehow picks up the name of the driver and stores this in
ntprinters.tdb. Then on the next client when we go to add the same
printer the client workstation picks up this driver name and refuses to
allow any other driver to be chosen (say PCL vs. PS). After proceeding
with the printer install and checking the ports tab in printer
properties instead of listing all of the client's local ports it lists
the 'samba printer port' as is seen on the server. Deleting
ntprinters.tdb and restarting Samba cleans the slate but it's not very
workable. Is there a way to prevent the Windows client from being able
to update the TDB database? Any recommendations? Here is my config:
 
[global]
 workgroup = DOMAIN
 netbios aliases = SERVER-ALIAS
 realm = realm.com
 server string = 
 interfaces = 10.70.1.42/255.255.0.0
 security = ADS
 password server = DC1, DC2
 log level = 1
 log file = /var/log/samba/log.%m
 max log size = 50
 deadtime = 5
 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192
SO_SNDBUF=8192
 preferred master = No
 local master = No
 domain master = No
 dns proxy = No
 wins server = 10.70.1.1
 ldap ssl = no
 idmap uid = 10000-20000
 idmap gid = 10000-20000
 template homedir = /home/%U
 template shell = /bin/bash
 winbind separator = +
 winbind use default domain = Yes
 admin users = root
 dos filemode = Yes
 
[printers]
 comment = All Printers
 path = /var/spool/samba
 guest ok = Yes
 printable = Yes
 force printername = Yes
 browseable = No
 
[print$]
 path = /etc/samba/drivers
 read only = No
 guest ok = Yes
 
Our use of Canon ImageRunner class printers has caused the main source
of our problems in using server side drivers. The Canon drivers have a
'Get Device Status' button in the Printer Properties dialog that
acquires information on the printer's configuration such as tray types
and number of trays, etc. When using Windows as a print server the Canon
Net Assistant service appears to receive this information and forward it
to the printer. Canon of course does not provide the equivalent for
Linux. Canon therefore provides a workaround application that can be run
on the Windows client called 'PortSet'. This application allows you to
bind IP addresses with specific printers so that the driver can
communicate directly with the printer for the device status. PortSet
unfortunately does not work at all if the printer's been installed with
the server side drivers.
 
Thanks guys
 
Justin


More information about the samba mailing list