Win2K/XP samba clients can submit print jobs

26 Jul

Apologies if this is an old chestnut, but I’ve seen identical queries all over the linux groups on google, and no workaround.

Apologies if this is an old chestnut, but I’ve seen identical queries all over the linux groups on google, and no workaround.

Scenario:

Win2K/XP samba clients can submit print jobs to printer on samba server(and they print), but dbl click on the samba printer or “see whats printing” gives the titlebar message:

[printername] on [servername] Access denied, unable to connect.

you cant cancel jobs, etc

This drove me bonkers until I cranked up logging to level 3 and RTFM (man smb.conf)
quote
.. the OpenPrint_erEx() call will fail. The result is that the
client will now display an “Access Denied; Unable
to connect” message in the printer queue window
(even though jobs may successfully be printed).

This is the “use client driver” section. And it applies in my case where I have a winXPhome
connecting to a laser printer on the samba box.

I’m not doing the [print$] share and installing all the drivers on the samba box (yet). This is well worth it but some other time.

to repeat, setting up [print$] is The Right Way To Do It.

Horrid Hack Answer: “use client driver = yes” see below

I dont want samba to grab everything in /etc/printcap, thus

[global]

load printers = no

The printer SHARE name is “Panasonic”, the entry in /etc/printcap is KXP6500 and its
set as a “raw” queue as it gets the preprocessed bytestream from the samba client.
The spool file is /var/lpd/samba as its lprng’s job to take the file from here and
shovel it into the /var/spool/lpd/KXP6500 queue

thus

[Panasonic]
browsable = yes
printable = yes
printing = lprng
printer = KXP6500
print command = /usr/bin/lpr -b -P%p -r %s
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
path = /var/spool/samba
min print space = 2000
#
# CAUTION! this does not apply to win95/98/ME
# it tells winNT/2K/XP clients to use a local
# printer driver
# stops the “acess denied” in windows when trying to view
# print queue
use client driver = yes

nb, perms, owner, group, for /var/spool/samba are drwxrwxrwt root root

Hey presto! I can examine the queue, suspend, restart, cancel print jobs etc.

setting “done_jobs=0” in lpd.conf will get rid of the long list of completed jobs
that windows will display for days afterwards.

Hope this helps