setdriver fails with WERR_ACCESS_DENIED -- possibly it's the
"use client driver = yes"
John Gerth
gerth at stanford.edu
Thu Mar 20 17:23:49 GMT 2003
We are currently using Samba 2.2.7a with CUPS 1.1.17-0.2 on Redhat 8.0 here and have been
able to upload and download drivers for our HP and Epson printers under Windows.
However, it has taken us many iterations to get this right and you do have
to install fairly recent versions of both Samba and CUPS. Since most of our printing
comes from Windows since some Epson printers have proprietary drivers we do generally
upload the native ones rather than using cupsaddsmb.
What I notice that is different from our setup is that your smb.conf has:
use client driver = yes
according to the man page (see below) setting this will
prevent you from opening the printer with administrative rights
which would logically be necessary for setdriver.
We have found that the default "use client driver = no" not only allows us to
keep the drivers on the server, it also lets the printer administrator set
such default characteristics as duplexing, paper size, etc. whereas with
local drivers, one has to set them on each client machine.
--
John Gerth gerth at stanford.edu (650) 725-3273 fax 723-0033
*********************** from man smb.conf
use client driver (S)
This parameter applies only to Windows NT/2000 clients. It has
no affect on Windows 95/98/ME clients. When serving a printer to
Windows NT/2000 clients without first installing a valid printer
driver on the Samba host, the client will be required to install
a local printer driver. From this point on, the client will
treat the print as a local printer and not a network printer
connection. This is much the same behavior that will occur when
disable spoolss = yes.
The differentiating factor is that under normal circumstances,
the NT/2000 client will attempt to open the network printer
using MS-RPC. The problem is that because the client considers
the printer to be local, it will attempt to issue the OpenPrint-
erEx() call requesting access rights associated with the logged
on user. If the user possesses local administator rights but not
root privilegde on the Samba host (often the case), the Open-
PrinterEx() 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).
If this parameter is enabled for a printer, then any attempt to
open the printer with the PRINTER_ACCESS_ADMINISTER right is
mapped to PRINTER_ACCESS_USE instead. Thus allowing the Open-
PrinterEx() call to succeed. This parameter MUST not be able
enabled on a print share which has valid print driver installed
on the Samba server.
See also disable spoolss
Default: use client driver = no
More information about the samba-technical
mailing list