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