diff options
author | cvs2svn Import User <samba-bugs@samba.org> | 2001-04-17 08:01:13 +0000 |
---|---|---|
committer | cvs2svn Import User <samba-bugs@samba.org> | 2001-04-17 08:01:13 +0000 |
commit | fb9c71b41c15c70d7cfe26f58726fea9eb941fbc (patch) | |
tree | dd881e3a62b30ede7bf1888fa99335f4f2a1552d /docs/htmldocs/printer_driver2.html | |
parent | ef0a2369a96d6eb62dbd5a819cef0d49644cd3a8 (diff) | |
download | samba-fb9c71b41c15c70d7cfe26f58726fea9eb941fbc.tar.gz samba-fb9c71b41c15c70d7cfe26f58726fea9eb941fbc.tar.xz samba-fb9c71b41c15c70d7cfe26f58726fea9eb941fbc.zip |
This commit was manufactured by cvs2svn to create branch
'SAMBA_2_2_RELEASE'.
Diffstat (limited to 'docs/htmldocs/printer_driver2.html')
-rw-r--r-- | docs/htmldocs/printer_driver2.html | 744 |
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" ->> </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 |