summaryrefslogtreecommitdiffstats
path: root/docs/htmldocs/printer_driver2.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/htmldocs/printer_driver2.html')
-rw-r--r--docs/htmldocs/printer_driver2.html744
1 files changed, 0 insertions, 744 deletions
diff --git a/docs/htmldocs/printer_driver2.html b/docs/htmldocs/printer_driver2.html
deleted file mode 100644
index 34208f8feea..00000000000
--- a/docs/htmldocs/printer_driver2.html
+++ /dev/null
@@ -1,744 +0,0 @@
-<HTML
-><HEAD
-><TITLE
->Printing Support in Samba 2.2.x</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD
-><BODY
-CLASS="ARTICLE"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><DIV
-CLASS="ARTICLE"
-><DIV
-CLASS="TITLEPAGE"
-><H1
-CLASS="TITLE"
-><A
-NAME="AEN1"
->Printing Support in Samba 2.2.x</A
-></H1
-><HR></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN3"
->Introduction</A
-></H1
-><P
->Beginning with the 2.2.0 release, Samba supports
- the native Windows NT printing mechanisms implemented via
- MS-RPC (i.e. the SPOOLSS named pipe). Previous versions of
- Samba only supported LanMan printing calls.</P
-><P
->The additional functionality provided by the new
- SPOOLSS support includes:</P
-><P
-></P
-><UL
-><LI
-><P
->Support for downloading printer driver
- files to Windows 95/98/NT/2000 clients upon demand.
- </P
-></LI
-><LI
-><P
->Uploading of printer drivers via the
- Windows NT Add Printer Wizard (APW) or the <A
-HREF="http://imprints.sourceforge.net"
-TARGET="_top"
->Imprints tool set
- </A
-></P
-></LI
-><LI
-><P
->Support for the native MS-RPC printing
- calls such as StartDocPrinter, EnumJobs(), etc... (See
- the <A
-HREF="http://msdn.microsoft.com/"
-TARGET="_top"
->MSDN documentation
- </A
-> for more information on the Win32 printing API)
- </P
-></LI
-><LI
-><P
->Support for NT Access Control Lists (ACL)
- on printer objects</P
-></LI
-><LI
-><P
->Improved support for printer queue manipulation
- through the use of an internal databases for spooled job
- information</P
-></LI
-></UL
-></DIV
-><DIV
-CLASS="SECT1"
-><HR><H1
-CLASS="SECT1"
-><A
-NAME="AEN20"
->Configuration</A
-></H1
-><P
->In order to support the uploading of printer driver
- files, you must first configure a file share named [print$].
- The name of this share is hard coded in Samba's internals so
- the name is very important (print$ is the service used by
- Windows NT print servers to provide support for printer driver
- download).</P
-><DIV
-CLASS="WARNING"
-><P
-></P
-><TABLE
-CLASS="WARNING"
-BORDER="1"
-WIDTH="100%"
-><TR
-><TD
-ALIGN="CENTER"
-><B
->Warning</B
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-><P
->Previous versions of Samba recommended using
- a share named [printer$]. This name was taken from the
- printer$ service created by Windows 9x clients when a
- printer was shared. Windows 9x printer servers always have
- a printer$ service which provides read-only access via no
- password in order to support printer driver downloads.</P
-><P
->However, the initial implementation allowed for a
- parameter named <TT
-CLASS="PARAMETER"
-><I
->printer driver location</I
-></TT
->
- to be used on a per share basis to specify the location of
- the driver files associated with that printer. Another
- parameter named <TT
-CLASS="PARAMETER"
-><I
->printer driver</I
-></TT
-> provided
- a means of defining the printer driver name to be sent to
- the client.</P
-><P
->These parameters, including <TT
-CLASS="PARAMETER"
-><I
->printer driver
- file</I
-></TT
-> parameter, are being depreciated and should not
- be used in new installations. For more information on this change,
- you should refer to the <A
-HREF="#MIGRATION"
->Migration section
- </A
->of this document.</P
-></TD
-></TR
-></TABLE
-></DIV
-><P
->You should modify the server's smb.conf file to create the
- following file share (of course, some of the parameter values,
- such as 'path' are arbitrary and should be replaced with
- appropriate values for your site):</P
-><P
-><PRE
-CLASS="PROGRAMLISTING"
->[print$]
- path = /usr/local/samba/printers
- guest ok = yes
- browseable = yes
- read only = yes
- write list = ntadmin
- </PRE
-></P
-><P
->The <A
-HREF="smb.conf.5.html#WRITELIST"
-TARGET="_top"
-><TT
-CLASS="PARAMETER"
-><I
-> write list</I
-></TT
-></A
-> is used to allow administrative
- level user accounts to have write access in order to update files
- on the share. See the <A
-HREF="smb./conf.5.html"
-TARGET="_top"
-> smb.conf(5) man page</A
-> for more information on
- configuring file shares.</P
-><P
->The requirement for <A
-HREF="smb.conf.5.html#GUESTOK"
-TARGET="_top"
-><B
-CLASS="COMMAND"
-> guest ok = yes</B
-></A
-> depends upon how your
- site is configured. If users will be guaranteed to have
- an account on the Samba host, then this is a non-issue.</P
-><P
-><I
-CLASS="EMPHASIS"
->author's note: </I
->The non-issue is that
- if all your Windows NT users are guarenteed to be authenticated
- by the Samba server (such as a domain member server and the NT
- user has already been validated by the Domain Controller in
- order to logon to the Windows NT console), then guest access
- is not necessary. Of course, in a workgroup environment where
- you just want to be able to print without worrying about
- silly accounts and security, then configure the share for
- guest access. You'll probably want to add <A
-HREF="smb.conf.5.html#MAPTOGUEST"
-TARGET="_top"
-><B
-CLASS="COMMAND"
->map to guest = Bad User
- </B
-></A
-> in the [global] section as well. Make sure
- you understand what this parameter does before using it
- though. --jerry]</P
-><P
->In order for a Windows NT print server to support
- the downloading of driver files by multiple client architectures,
- it must create subdirectories within the [print$] service
- which correspond to each of the supported client architectures.
- Samba follows this model as well.</P
-><P
->Next create the directory tree below the [print$] share
- for each architecture you wish to support.</P
-><P
-><PRE
-CLASS="PROGRAMLISTING"
-> [print$]-----
- |-W32X86 ; "Windows NT x86"
- |-WIN40 ; "Windows 95/98"
- |-W32ALPHA ; "Windows NT Alpha_AXP"
- |-W32MIPS ; "Windows NT R4000"
- |-W32PPC ; "Windows NT PowerPC"
- </PRE
-></P
-><DIV
-CLASS="WARNING"
-><P
-></P
-><TABLE
-CLASS="WARNING"
-BORDER="1"
-WIDTH="100%"
-><TR
-><TD
-ALIGN="CENTER"
-><B
->Warning</B
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-><P
-><I
-CLASS="EMPHASIS"
->ATTENTION! REQUIRED PERMISSIONS</I
-></P
-><P
->In order to currently add a new driver to you Samba host,
- one of two conditions must hold true:</P
-><P
-></P
-><UL
-><LI
-><P
->The account used to connect to the Samba host
- must have a uid of 0 (i.e. a root account)</P
-></LI
-><LI
-><P
->The account used to connect to the Samba host
- must be a member of the <A
-HREF="smb.conf.5.html"
-TARGET="_top"
-><TT
-CLASS="PARAMETER"
-><I
-> printer admin</I
-></TT
-></A
-> list.</P
-></LI
-></UL
-><P
->Of course, the connected account must still possess access
- to add files to the subdirectories beneath [print$].</P
-></TD
-></TR
-></TABLE
-></DIV
-><P
->Once you have created the required [print$] service and
- associated subdirectories, simply log onto the Samba server using
- a root (or <TT
-CLASS="PARAMETER"
-><I
->printer admin</I
-></TT
->) account
- from a Windows NT 4.0 client. Navigate to the "Printers" folder
- on the Samba server. You should see an initial listing of printers
- that matches the printer shares defined on your Samba host.</P
-><P
->The initial listing of printers in the Samba host's
- Printers folder will have no printer driver assigned to them.
- The way assign a driver to a printer is to view the Properties
- of the printer and either</P
-><P
-></P
-><UL
-><LI
-><P
->Use the "New Driver..." button to install
- a new printer driver, or</P
-></LI
-><LI
-><P
->Select a driver from the popup list of
- installed drivers. Initially this list will be empty.</P
-></LI
-></UL
-><P
->If you wish to install printer drivers for client
- operating systems other than "Windows NT x86", you will need
- to use the "Sharing" tab of the printer properties dialog.</P
-><P
->Assuming you have connected with a root account, you
- will also be able modify other printer properties such as
- ACLs and device settings using this dialog box.</P
-><P
->A few closing comments for this section, it is possible
- on a Windows NT print server to have printers
- listed in the Printers folder which are not shared. Samba does
- not make this distinction. By definition, the only printers of
- which Samba is aware are those which are specified as shares in
- <TT
-CLASS="FILENAME"
->smb.conf</TT
->.</P
-><P
->Another interesting side note is that Windows NT clients do
- not use the SMB printer share, but rather can print directly
- to any printer on another Windows NT host using MS-RPC. This
- of course assumes that the printing client has the necessary
- privileges on the remote host serving the printer. The default
- permissions assigned by Windows NT to a printer gives the "Print"
- permissions to the "Everyone" well-known group.</P
-><DIV
-CLASS="SECT2"
-><HR><H2
-CLASS="SECT2"
-><A
-NAME="AEN74"
->Support a large number of printers</A
-></H2
-><P
->One issue that has arisen during the development
- phase of Samba 2.2 is the need to support driver downloads for
- 100's of printers. Using the Windows NT APW is somewhat
- awkward to say the list. If more than one printer are using the
- same driver, the <A
-HREF="rpcclient.1.html"
-TARGET="_top"
-><B
-CLASS="COMMAND"
->rpcclient's
- setdriver command</B
-></A
-> can be used to set the driver
- associated with an installed driver. The following is example
- of how this could be accomplished:</P
-><P
-><PRE
-CLASS="PROGRAMLISTING"
->
- <TT
-CLASS="PROMPT"
->$ </TT
->rpcclient pogo -U root%secret -c "enumdrivers"
-Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
-
-[Windows NT x86]
-Printer Driver Info 1:
- Driver Name: [HP LaserJet 4000 Series PS]
-
-Printer Driver Info 1:
- Driver Name: [HP LaserJet 2100 Series PS]
-
-Printer Driver Info 1:
- Driver Name: [HP LaserJet 4Si/4SiMX PS]
-
- <TT
-CLASS="PROMPT"
->$ </TT
->rpcclient pogo -U root%secret -c "enumprinters"
-Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
- flags:[0x800000]
- name:[\\POGO\hp-print]
- description:[POGO\\POGO\hp-print,NO DRIVER AVAILABLE FOR THIS PRINTER,]
- comment:[]
-
- <TT
-CLASS="PROMPT"
->$ </TT
->rpcclient pogo -U root%bleaK.er \
- <TT
-CLASS="PROMPT"
->&gt; </TT
-> -c "setdriver hp-print \"HP LaserJet 4000 Series PS\""
-Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
-Succesfully set hp-print to driver HP LaserJet 4000 Series PS.
- </PRE
-></P
-></DIV
-></DIV
-><DIV
-CLASS="SECT1"
-><HR><H1
-CLASS="SECT1"
-><A
-NAME="AEN85"
->The Imprints Toolset</A
-></H1
-><P
->The Imprints tool set provides a UNIX equivalent of the
- Windows NT Add Printer Wizard. For complete information, please
- refer to the Imprints web site at <A
-HREF="http://imprints.sourceforge.net/"
-TARGET="_top"
-> http://imprints.sourceforge.net/</A
-> as well as the documentation
- included with the imprints source distribution. This section will
- only provide a brief introduction to the features of Imprints.</P
-><DIV
-CLASS="SECT2"
-><HR><H2
-CLASS="SECT2"
-><A
-NAME="AEN89"
->What is Imprints?</A
-></H2
-><P
->Imprints is a collection of tools for supporting the goals
- of</P
-><P
-></P
-><UL
-><LI
-><P
->Providing a central repository information
- regarding Windows NT and 95/98 printer driver packages</P
-></LI
-><LI
-><P
->Providing the tools necessary for creating
- the Imprints printer driver packages.</P
-></LI
-><LI
-><P
->Providing an installation client which
- will obtain and install printer drivers on remote Samba
- and Windows NT 4 print servers.</P
-></LI
-></UL
-></DIV
-><DIV
-CLASS="SECT2"
-><HR><H2
-CLASS="SECT2"
-><A
-NAME="AEN99"
->Creating Printer Driver Packages</A
-></H2
-><P
->The process of creating printer driver packages is beyond
- the scope of this document (refer to Imprints.txt also included
- with the Samba distribution for more information). In short,
- an Imprints driver package is a gzipped tarball containing the
- driver files, related INF files, and a control file needed by the
- installation client.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><HR><H2
-CLASS="SECT2"
-><A
-NAME="AEN102"
->The Imprints server</A
-></H2
-><P
->The Imprints server is really a database server that
- may be queried via standard HTTP mechanisms. Each printer
- entry in the database has an associated URL for the actual
- downloading of the package. Each package is digitally signed
- via GnuPG which can be used to verify that package downloaded
- is actually the one referred in the Imprints database. It is
- <I
-CLASS="EMPHASIS"
->not</I
-> recommended that this security check
- be disabled.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><HR><H2
-CLASS="SECT2"
-><A
-NAME="AEN106"
->The Installation Client</A
-></H2
-><P
->More information regarding the Imprints installation client
- is available in the <TT
-CLASS="FILENAME"
->Imprints-Client-HOWTO.ps</TT
->
- file included with the imprints source package.</P
-><P
->The Imprints installation client comes in two forms.</P
-><P
-></P
-><UL
-><LI
-><P
->a set of command line Perl scripts</P
-></LI
-><LI
-><P
->a GTK+ based graphical interface to
- the command line perl scripts</P
-></LI
-></UL
-><P
->The installation client (in both forms) provides a means
- of querying the Imprints database server for a matching
- list of known printer model names as well as a means to
- download and install the drivers on remote Samba and Windows
- NT print servers.</P
-><P
->The basic installation process is in four steps and
- perl code is wrapped around <B
-CLASS="COMMAND"
->smbclient</B
->
- and <B
-CLASS="COMMAND"
->rpcclient</B
->.</P
-><P
-><PRE
-CLASS="PROGRAMLISTING"
->
- foreach (supported architecture for a given driver)
- {
- 1. rpcclient: Get the appropriate upload directory
- on the remote server
- 2. smbclient: Upload the driver files
- 3. rpcclient: Issues an AddPrinterDriver() MS-RPC
- }
-
- 4. rpcclient: Issue an AddPrinterEx() MS-RPC to actually
- create the printer
- </PRE
-></P
-><P
->One of the problems encountered when implementing
- the Imprints tool set was the name space issues between
- various supported client architectures. For example, Windows
- NT includes a driver named "Apple LaserWriter II NTX v51.8"
- and Windows 95 callsits version of this driver "Apple
- LaserWriter II NTX"</P
-><P
->The problem is how to know what client drivers have
- been uploaded for a printer. As astute reader will remember
- that the Windows NT Printer Properties dialog only includes
- space for one printer driver name. A quick look in the
- Windows NT 4.0 system registry at</P
-><P
-><TT
-CLASS="FILENAME"
->HKLM\System\CurrentControlSet\Control\Print\Environment
- </TT
-></P
-><P
->will reveal that Windows NT always uses the NT driver
- name. The is ok as Windows NT always requires that at least
- the Windows NT version of the printer driver is present.
- However, Samba does not have the requirement internally.
- Therefore, how can you use the NT driver name if is has not
- already been installed?</P
-><P
->The way of sidestepping this limitation is to require
- that all Imprints printer driver packages include both the Intel
- Windows NT and 95/98 printer drivers and that NT driver is
- installed first.</P
-></DIV
-></DIV
-><DIV
-CLASS="SECT1"
-><HR><H1
-CLASS="SECT1"
-><A
-NAME="AEN128"
-><A
-NAME="MIGRATION"
-></A
->Migration to from Samba 2.0.x to
- 2.2.x</A
-></H1
-><P
->Given that printer driver management has changed
- (we hope improved :) ) in 2.2.0 over prior releases,
- migration from an existing setup to 2.2.0 can follow
- several paths.</P
-><DIV
-CLASS="WARNING"
-><P
-></P
-><TABLE
-CLASS="WARNING"
-BORDER="1"
-WIDTH="100%"
-><TR
-><TD
-ALIGN="CENTER"
-><B
->Warning</B
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-><P
->The following smb.conf parameters are considered to be
- depreciated and will be removed soon. Do not use them
- in new installations</P
-><P
-></P
-><UL
-><LI
-><P
-><TT
-CLASS="PARAMETER"
-><I
->printer driver file (G)</I
-></TT
->
- </P
-></LI
-><LI
-><P
-><TT
-CLASS="PARAMETER"
-><I
->printer driver (S)</I
-></TT
->
- </P
-></LI
-><LI
-><P
-><TT
-CLASS="PARAMETER"
-><I
->printer driver location (S)</I
-></TT
->
- </P
-></LI
-></UL
-></TD
-></TR
-></TABLE
-></DIV
-><P
->Here are the possible scenarios for supporting migration:</P
-><P
-></P
-><UL
-><LI
-><P
->If you do not desire the new Windows NT
- print driver support, nothing needs to be done.
- All existing parameters work the same.</P
-></LI
-><LI
-><P
->If you want to take advantage of NT printer
- driver support but do not want to migrate the
- 9x drivers to the new setup, the leave the existing
- printers.def file. When smbd attempts to locate a
- 9x driver for the printer in the TDB and fails it
- will drop down to using the printers.def (and all
- associated parameters). The <B
-CLASS="COMMAND"
->make_printerdef</B
->
- tool will also remain for backwards compatibility but will
- be moved to the "this tool is the old way of doing it"
- pile.</P
-></LI
-><LI
-><P
->If you install a Windows 9x driver for a printer
- on your Samba host (in the printing TDB), this information will
- take precedence and the three old printing parameters
- will be ignored (including print driver location).</P
-></LI
-><LI
-><P
->If you want to migrate an existing <TT
-CLASS="FILENAME"
-> printers.def</TT
-> file into the new setup, the current only
- solution is to use the Windows NT APW to install the NT drivers
- and the 9x drivers. This can be scripted using smbclient and
- rpcclient. See the <A
-HREF="http://imprints.sourceforge.net/"
-TARGET="_top"
-> Imprints insrallation client</A
-> for an example.
- </P
-></LI
-></UL
-></DIV
-></DIV
-></BODY
-></HTML
-> \ No newline at end of file