Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Imagenes
Documentos
Cuestiones php
Fedora
Legal
Resumen
W2000 xp
COMOS
Errores dns
Foros
dns.bdat.net

Directorio

Instalando controladores en [print$]

Ha creado correctamente el servicio [print$] en smb.conf y ha hecho que Samba relea su fichero smb.conf. Bien, pues aun no está listo pra utilizar esta nueva característica. Hay que instalar los ficheros necesario en el servicio, por ahora es un servicio vacío. Por desgracia no basta con copiar los ficheros del controlador, tienen que estar correctamente instalados para que en Samba haya registos en su base de datos y pueda devolver los controladores adecuados a cada cliente MS Windows, y esto es un pequeño truco. Ahora analizamos dos altrnativas para instalar los controladores en [print$]:

  • Usando en una shell las utilidades de línea de comandos de Samba rpcclient con sus distintos subordenes (aquí: adddriver y setdriver).

  • Ejecutando el asistente para añadir impresoras en cualquier estación cliente Windows NT/200x/XP.

El último método es probablemnente el más fácil (incluso aunque el proceso pueda parecer un poco exotérico al principio).

Instalación de controladores con el asistente para añadir impresoras

El listado inicial de impresores que se ve en la ventana del explorer en la carpeta de impresoras del host Samba no tiene controladores reales asignados. El valor predeterminado del nombre del controlador es una cadena de caracteres nula y esto tenemos que cambiarlo ahora utilzando el asistente para añadir impresoras de un cliente NT/2000/XP.

La instalación de un controlador de impresión valido no es directa. Tiene que intentar ver las propiedades de la impresora a las que quiere asignar el controlador. Abra el Explorer de Windows, Entorno de Red, el host Samba. Abra la carpeta de impresoras y con el botón derecho en el icono de la impresora seleccione las propiedades. Ahora está intentando ver las propiedades del controlador de un cola que tiene como driver asignado NULL. Esto produce el siguiente mensaje de error:

Device settings cannot be displayed. The driver for the specified printer is not installed, only spooler properties will be displayed. Do you want to install the driver now?

No pulse en Aceptar, en su lugar pulse en No el el diálogo de errores. Sólo ahora se le presenta la ventana de propiedades. Desde aquí la forma de asignar el controlador a una impresora es:

  • Elija un controlador de la lista de controladores instalados. Inicialmente esta lista estará vacía.

  • Pulse en "Nuevo controlador" para instalar un nuevo controlador de impresora, lo que inicia el asistente para impresoras.

Una vez que se ha iniciado el asistente el procedimiento es exactamente igual que el habitual en Windows (suponemos que está familiarizado con la instalación de controladores de impresoras en Windows NT). Asegúrese de que su conexión la ha realizado con un usuario con privilegios printer admin (si tiene dudas use smbstatus para comprobarlo). Si quiere instalar controladores de imprsión para sistemas operativos clientes que no sean Windows NT x86, tendrá que usar las propiedades de la pestaña compartir.

Suponiendo que ha iniciado la sesión con una cuenta administrativa o root (según se indica en el parámetro printer admin), también podrá modifica,r usando este diálogo, las propiedadesde otras impresoras como ACLs y valores predefinidos. Para los valores predefinidos del dispositivo tenga en cuenta el aviso de inst-rpc.

Instalar controladroes de dispositivos usando rpcclient

La segunda forma de instalar controladores de impresoras en [print$] y activarlas de foma correcta es hacerlo desde las línea de órdenes de una shell. Esto incluye cuatro pasos distintos:

  1. Recoger información sobre los ficheros de controlador necesarios y recopilarlos.

  2. Situar los ficheros del controlador en el sibdirectorio correcto del servicio [print$], posiblemente usando smbclient.

  3. Ejecutar la utilidad rpcclient en una shell una vez con la suborden adddriver.

  4. Ejecute rpcclient una segunda vez con la suborden setdriver.

A continuación damos detalles de cada uno de estos pasos:

Identificar los ficheros del controlador

Para encontrarlo lo necesario sobre los ficheros de los controladores tiene dos opciones. Puede comprobar los contenidos del CDROM de los contoladores que venia con la impresora. Estudie los ficheros *.inf del CDROM. Puede que esto no sea posible si no los trae. Muchos fabricantes han comenzado a distribuir sus propios programas de instalación. Estas paquetes instalables con fecuencia son archivos comprimidos y puede que también se les cambie el nombre durante la instalación. Esto hace bastante difícil determinar los ficheros necesarios.

Entonces tiene una segunda opción, instalar los controladores localmente en un cliente Windows e investigar qué ficheros y qué rutas usa tras la instalación. Tiene que repetir este procedimiento para cada plataforma cliente. Aquí lo mostramos sólo para plataformas W32X86, como Microsoft denomina Windows NT/200x/XP).

Un buen sistema para reconocer los fichros del controlador es imprimir una página de prueba en el diálogo de propiedades de la impresora. Mire la lista de ficheros del controlador en el papel.Tendrá que identificar lo que Windows (y Samba) llaman Driver File, Data File, Config File, Help File y (optconalmente) los Dependent Driver Files (esto puede ser distinto en Windows NT). Tiene que anotar de todos los nombes de los ficheros para el siguiente paso.

Otro método pra verificar rápidamente los ficheros del controlador y sus ubicaciones la proporciona la utilidad rpcclient. Ejecute esta orden con enumdrivers o con getdrivercada una con el valor 3 3 de info level. En el siguiente ejmplo, TURBO_XP es el nombre de un PC Windows(en este caso un portátil con Windows XP Profesional). He instalado los controladores localmente en TURBO_XP, de un servidor Samba llamadoKDE-BITSHOP. Podemos ejecutar una sesión interactiva de rpcclient; entonces tendríamos el indicador de rpcclient /> para poder introducir directamente las subórdenes. Este es un buen ejercicio para el lector. Por ahora usamos rpcclient con el parámetro -c para ejecutar sólo una línea de suborden y salir. Este es el modo que tendría que usar para crear scripts que automatizaran el proceso para un gran número de impresoras y controladores. Observe las distintas comillas para los espacios entre palabras.


root# rpcclient -U'Danka%xxxx' -c \
        'getdriver "Heidelberg Digimaster 9110 (PS)" 3' TURBO_XP
cmd = getdriver "Heidelberg Digimaster 9110 (PS)" 3

[Windows NT x86]
Printer Driver Info 3:
  Version: [2]
  Driver Name: [Heidelberg Digimaster 9110 (PS)]
  Architecture: [Windows NT x86]
  Driver Path: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\HDNIS01_de.DLL]
  Datafile: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.ppd]
  Configfile: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\HDNIS01U_de.DLL]
  Helpfile: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\HDNIS01U_de.HLP]
  
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.DLL\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.INI\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.dat\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.cat\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.def\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.hre\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.vnd\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\Hddm91c1_de.hlp\
]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\HDNIS01Aux.dll]
  Dependentfiles: [C:\WINNT\System32\spool\DRIVERS\W32X86\2\HDNIS01_de.NTF]
  
  Monitorname: []
  Defaultdatatype: []

Se habrá dado cuenta que este controlador tiene un buen número de ficheros, pero hay casos peores.También, de forma extraña, Driver File aparece como Driver Path. No tenemos soporte para la arquitectura WIN40. Este es el mnombe qie usa Microsoft para Windows 9x/Me. Si necesitamos este soporte tenemos que instalar los controladores de Windows 9x/Me además de los de W32X86 (i.e., clientes Windows NT72000/XP) en un PC Windows. Este PC también puede albergar los controladores Windows 9x/Me drivers, incluso si ejecuta Windows NT, 2000 o XP.

Como al servicio [print$] normalmente se accede a través del entorno de red, también puede usar la notación UNC en Windows Explorer para ponerlo. Los ficheros de los controladores 9x/Me terminan en un subdirectorio 0 del directorio WIN40. La ruta completa para acceder será \\WINDOWSHOST\print$\WIN40\0\.

Observación

Los coontroladores más recientes en Windows 2000 y Windows XP se instalan en el subdirectorio 3 en lugar de hacerlo en el subdirectorio 2. La versión 2 de los controladores, como es en NT, se ejecutan en modo kernel, Windows 2000 cambió esto. Aunque es posible ejecutar los controladores en modo Kerne (si lo habilita el administrador), su modo normal para los controlados de impresión es de ejecución en modo usuario. Este tipo de controladores se instala en el subdirectorio 3.

Obtener los ficheros del controlador de [print$] en clientes Windows Client [print$]

Ahora necesitamos reunir todos los ficheros del controlador que identificamos en el paso previo. ¿De dónde los sacamos? Bien, ¿por qué no recogerlos del mismo servicio [print$] del PC que usamos en el paso anterior para averiguar cuales eran? Podemos usar smbclient para hacerlo. Tenemos que usarlas rutas y los nombres que averiguamos con getdriver. El listado está editado para incluir saltos de linea, por cuestiones de legibilidad.


root# smbclient //TURBO_XP/print\$ -U'Danka%xxxx' \ 
   -c 'cd W32X86/2;mget HD*_de.* hd*ppd Hd*_de.* Hddm*dll HDN*Aux.DLL'

added interface ip=10.160.51.60 bcast=10.160.51.255 nmask=255.255.252.0
Got a positive name query response from 10.160.50.8 ( 10.160.50.8 )
Domain=[DEVELOPMENT] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Get file Hddm91c1_de.ABD? n
Get file Hddm91c1_de.def? y
getting file \W32X86\2\Hddm91c1_de.def of size 428 as Hddm91c1_de.def
Get file Hddm91c1_de.DLL? y
getting file \W32X86\2\Hddm91c1_de.DLL of size 876544 as Hddm91c1_de.DLL
[...]

Una vez completada esta orden, los ficheros están en nuestro directorio activo local. Probablemente habrá observado que esta vez hemos pasado varias órdenes al parámetro -c parameter, separadas por pnto y coma. Esto hace que las órdenes se ejecuten en secuencia en el servidor Windows remoto antes de que smbclient termine.

Recuerde repetir el proceso para la arquitectura WIN40 si necesita soporte para clientes Windows 9x/Me/XP clients. Recuerde también, los ficheros para esta arquitectura están el el subdirectorio WIN40/0/. Una vez completado podemos ejecutar smbclient ... put para guardar los ficheros en el servcio [print$] del servidor Samba.

Instalar los controladores en [print$]

Ahora vamos a situar los ficheros de los controladores en el servicio [print$]. Recuerde, las rutas UNIX de este recurso se definieron con anterioridad. También deb haber creado los subdirectorios para los diferentes tipso de clientes que quiera instalar. Suponiendo que el servicio [print$] se asocia a la ruta UNIX /etc/Samba/drivers/, los ficheros de controladores irían aquí:

  • Para todos los clientes Windows NT, 2000 y XP clients en /etc/Samba/drivers/W32X86/ pero no (todavía) en el subdirectorio 2.

  • Para todos los clientes Windows 95, 98 y ME en /etc/Samba/drivers/WIN40/ pero no (todavía) en el subdirectorio0.

De nuevo usamos smbclient para transferir los ficheros a través de la red. Indicamos los mismos fichros y rutas que usamos ejecutando getdriver en la instalación Windows original. Sin embargo, ahora vamos a guardarlos en servicio [print$] de un servidor de impresion Samba/UNIX.


root# smbclient //Samba-CUPS/print\$ -U'root%xxxx' -c \
  'cd W32X86; put HDNIS01_de.DLL; \
  put Hddm91c1_de.ppd; put HDNIS01U_de.DLL;        \
  put HDNIS01U_de.HLP; put Hddm91c1_de.DLL;        \
  put Hddm91c1_de.INI; put Hddm91c1KMMin.DLL;      \
  put Hddm91c1_de.dat; put Hddm91c1_de.dat;        \
  put Hddm91c1_de.def; put Hddm91c1_de.hre;        \
  put Hddm91c1_de.vnd; put Hddm91c1_de.hlp;        \
  put Hddm91c1_de_reg.HLP; put HDNIS01Aux.dll;     \
  put HDNIS01_de.NTF'

added interface ip=10.160.51.60 bcast=10.160.51.255 nmask=255.255.252.0
Got a positive name query response from 10.160.51.162 ( 10.160.51.162 )
Domain=[CUPS-PRINT] OS=[UNIX] Server=[Samba 2.2.7a]
putting file HDNIS01_de.DLL as \W32X86\HDNIS01_de.DLL
putting file Hddm91c1_de.ppd as \W32X86\Hddm91c1_de.ppd
putting file HDNIS01U_de.DLL as \W32X86\HDNIS01U_de.DLL
putting file HDNIS01U_de.HLP as \W32X86\HDNIS01U_de.HLP
putting file Hddm91c1_de.DLL as \W32X86\Hddm91c1_de.DLL
putting file Hddm91c1_de.INI as \W32X86\Hddm91c1_de.INI
putting file Hddm91c1KMMin.DLL as \W32X86\Hddm91c1KMMin.DLL
putting file Hddm91c1_de.dat as \W32X86\Hddm91c1_de.dat
putting file Hddm91c1_de.dat as \W32X86\Hddm91c1_de.dat
putting file Hddm91c1_de.def as \W32X86\Hddm91c1_de.def
putting file Hddm91c1_de.hre as \W32X86\Hddm91c1_de.hre
putting file Hddm91c1_de.vnd as \W32X86\Hddm91c1_de.vnd
putting file Hddm91c1_de.hlp as \W32X86\Hddm91c1_de.hlp
putting file Hddm91c1_de_reg.HLP as \W32X86\Hddm91c1_de_reg.HLP
putting file HDNIS01Aux.dll as \W32X86\HDNIS01Aux.dll
putting file HDNIS01_de.NTF as \W32X86\HDNIS01_de.NTF

Muchas línea de salida. La mayoría de los controladores son bastante más pequeños, muchos sólo tienen tres ficheros de controladores genéricos PostScript mas un PPD. Cuando recogimos los ficheros del subdirectorio 2 del directorio W32X86 de la máquina Windows no los hemos puesto en el mismo directorio de la máquina Samba (por ahora). Esta reubicación la hace automáticamente la orden adddriver, que se va a ejecutar a continuación (y no olvide poner también los ficheros para Windows 9x/Me en el subdirectorio WIN40/).

smbclientConfirmar la instalación de controladores

Por ahora comprobamos que nuestros ficheros está ahí. Esto se puede hacer también con smbclient (o una conexión mediante ssh a una shell).


root# smbclient //Samba-CUPS/print\$ -U 'root%xxxx' \
        -c 'cd W32X86; pwd; dir; cd 2; pwd; dir'
 added interface ip=10.160.51.60 bcast=10.160.51.255 nmask=255.255.252.0
Got a positive name query response from 10.160.51.162 ( 10.160.51.162 )
Domain=[CUPS-PRINT] OS=[UNIX] Server=[Samba 2.2.8a]

Current directory is \\Samba-CUPS\print$\W32X86\
.                                  D        0  Sun May  4 03:56:35 2003
..                                 D        0  Thu Apr 10 23:47:40 2003
2                                   D        0  Sun May  4 03:56:18 2003
HDNIS01Aux.dll                      A    15356  Sun May  4 03:58:59 2003
Hddm91c1KMMin.DLL                   A    46966  Sun May  4 03:58:59 2003
HDNIS01_de.DLL                      A   434400  Sun May  4 03:58:59 2003
HDNIS01_de.NTF                      A   790404  Sun May  4 03:56:35 2003
Hddm91c1_de.DLL                     A   876544  Sun May  4 03:58:59 2003
Hddm91c1_de.INI                     A      101  Sun May  4 03:58:59 2003
Hddm91c1_de.dat                     A     5044  Sun May  4 03:58:59 2003
Hddm91c1_de.def                     A      428  Sun May  4 03:58:59 2003
Hddm91c1_de.hlp                     A    37699  Sun May  4 03:58:59 2003
Hddm91c1_de.hre                     A   323584  Sun May  4 03:58:59 2003
Hddm91c1_de.ppd                     A    26373  Sun May  4 03:58:59 2003
Hddm91c1_de.vnd                     A    45056  Sun May  4 03:58:59 2003
HDNIS01U_de.DLL                     A   165888  Sun May  4 03:58:59 2003
HDNIS01U_de.HLP                     A    19770  Sun May  4 03:58:59 2003
Hddm91c1_de_reg.HLP                 A   228417  Sun May  4 03:58:59 2003
              40976 blocks of size 262144. 709 blocks available

Current directory is \\Samba-CUPS\print$\W32X86\2\
.                                  D        0  Sun May  4 03:56:18 2003
..                                 D        0  Sun May  4 03:56:35 2003
ADOBEPS5.DLL                        A   434400  Sat May  3 23:18:45 2003
laserjet4.ppd                       A     9639  Thu Apr 24 01:05:32 2003
ADOBEPSU.DLL                        A   109568  Sat May  3 23:18:45 2003
ADOBEPSU.HLP                        A    18082  Sat May  3 23:18:45 2003
PDFcreator2.PPD                     A    15746  Sun Apr 20 22:24:07 2003
              40976 blocks of size 262144. 709 blocks available

Observe que ya hay ficheros de controladores presentes en el subdirectorio 2 (probablemnente de una instalación previa). Una vez que los ficheros del nuevo controlador ya estén allí también, todavía está a unos pocos pasos de que sus clientes puedan utilizarlos. Lo único que que podría hacer ahora es bajarlos con un cliente como un fichero cualquiera, abriendo print$ en Windows con Explorer. Pero eso no los instararía bajo demanda. La razón es que aun Samba no sabe que esos ficheros son algo especial en concreto ficheros de controladores de imresión y no sabe a que cola pertenece este controlador.

Ejecutando rpcclient con adddriver

Ahora tiene que decirle a Samba que categoría especial de ficheros está subiendo al servicio [print$]. La orden adddriver hace esto. Pedirá a Samba que registre el contolador en sus ficheros internos de base de datos TDB. La siguiente orden y su salida se ha modificado por motivos de legibilidad.


root# rpcclient -Uroot%xxxx -c 'adddriver "Windows NT x86" \
  "dm9110:HDNIS01_de.DLL: \
  Hddm91c1_de.ppd:HDNIS01U_de.DLL:HDNIS01U_de.HLP:   \
  NULL:RAW:Hddm91c1_de.DLL,Hddm91c1_de.INI,          \
  Hddm91c1_de.dat,Hddm91c1_de.def,Hddm91c1_de.hre,   \
  Hddm91c1_de.vnd,Hddm91c1_de.hlp,Hddm91c1KMMin.DLL, \
  HDNIS01Aux.dll,HDNIS01_de.NTF,                     \
  Hddm91c1_de_reg.HLP' Samba-CUPS

cmd = adddriver "Windows NT x86" \
  "dm9110:HDNIS01_de.DLL:Hddm91c1_de.ppd:HDNIS01U_de.DLL:   \
  HDNIS01U_de.HLP:NULL:RAW:Hddm91c1_de.DLL,Hddm91c1_de.INI, \
  Hddm91c1_de.dat,Hddm91c1_de.def,Hddm91c1_de.hre,          \
  Hddm91c1_de.vnd,Hddm91c1_de.hlp,Hddm91c1KMMin.DLL,        \
  HDNIS01Aux.dll,HDNIS01_de.NTF,Hddm91c1_de_reg.HLP"

Printer Driver dm9110 successfully installed.

Tras este paso Samba debería reconocer al controlador en el servidor de impresión. Tiene que tener mucho cuidado cuando teclee la orden. No cambie el orden de los campos. Algunos cambios popdrían llevar a un mensaje de error NT_STATUS_UNSUCCESSFUL. Esto es obvio. Otros cambios podrían instalar correctamente los controladores y no funcionar con el dispositivo. Po r tanto, tenga cuidado. Los detalles de la sintaxis de adddriver están en la página de manual. El capítulo de impresión con CUPS tiene más detalles que podrían ser útiles e incluso necesarios.

Comprobar adddriver

El mensaje de successfully installed es el indicador de que Samba ha reconocido los ficheros del controlador. Otro mensaje indica el hecho de que nuestros ficheros ha sido movidos por adddriver command al subdirectorio 2. Puede comprobarlo de nuevo con smbclient:


root# smbclient //Samba-CUPS/print\$ -Uroot%xx \
        -c 'cd W32X86;dir;pwd;cd 2;dir;pwd'
 added interface ip=10.160.51.162 bcast=10.160.51.255 nmask=255.255.252.0
 Domain=[CUPS-PRINT] OS=[UNIX] Server=[Samba 2.2.7a]

  Current directory is \\Samba-CUPS\print$\W32X86\
  .                                  D        0  Sun May  4 04:32:48 2003
  ..                                 D        0  Thu Apr 10 23:47:40 2003
  2                                   D        0  Sun May  4 04:32:48 2003
                40976 blocks of size 262144. 731 blocks available 

  Current directory is \\Samba-CUPS\print$\W32X86\2\
  .                                  D        0  Sun May  4 04:32:48 2003
  ..                                 D        0  Sun May  4 04:32:48 2003
  DigiMaster.PPD                      A   148336  Thu Apr 24 01:07:00 2003
  ADOBEPS5.DLL                        A   434400  Sat May  3 23:18:45 2003
  laserjet4.ppd                       A     9639  Thu Apr 24 01:05:32 2003
  ADOBEPSU.DLL                        A   109568  Sat May  3 23:18:45 2003
  ADOBEPSU.HLP                        A    18082  Sat May  3 23:18:45 2003
  PDFcreator2.PPD                     A    15746  Sun Apr 20 22:24:07 2003
  HDNIS01Aux.dll                      A    15356  Sun May  4 04:32:18 2003
  Hddm91c1KMMin.DLL                   A    46966  Sun May  4 04:32:18 2003
  HDNIS01_de.DLL                      A   434400  Sun May  4 04:32:18 2003
  HDNIS01_de.NTF                      A   790404  Sun May  4 04:32:18 2003
  Hddm91c1_de.DLL                     A   876544  Sun May  4 04:32:18 2003
  Hddm91c1_de.INI                     A      101  Sun May  4 04:32:18 2003
  Hddm91c1_de.dat                     A     5044  Sun May  4 04:32:18 2003
  Hddm91c1_de.def                     A      428  Sun May  4 04:32:18 2003
  Hddm91c1_de.hlp                     A    37699  Sun May  4 04:32:18 2003
  Hddm91c1_de.hre                     A   323584  Sun May  4 04:32:18 2003
  Hddm91c1_de.ppd                     A    26373  Sun May  4 04:32:18 2003
  Hddm91c1_de.vnd                     A    45056  Sun May  4 04:32:18 2003
  HDNIS01U_de.DLL                     A   165888  Sun May  4 04:32:18 2003
  HDNIS01U_de.HLP                     A    19770  Sun May  4 04:32:18 2003
  Hddm91c1_de_reg.HLP                 A   228417  Sun May  4 04:32:18 2003
                40976 blocks of size 262144. 731 blocks available

Otra verificación es que la fecha de los ficheros TDB de impresión se ha actualizado (y posiblemente se hayan incrementado sus tamaños).

Comprobar que Samba reconoce los controladores

Ahora el controlador tiene que registrarse con Samba. Podemos fácilmente verificarlo y lo hará en un momento. Sin embargo, este controlador todavía no está asociado a una impresora particular. Podemos comprobar el estado de los ficheros del controlador al menos de tres formas:

  • Desde cualquier cliente en el entorno de red, busque el host Samba y abra la carpeta de impresoras y faxes. Seleccione cualquier icono de impresora u con el botón derecho seleccione las propiedades. Pulse en la pestaña de Avanzadas. Aquí hay un campo que indica el controlador de esa impresora. Una lista desplegable le permite cambiar el controlador (tenga cuidado) Puede usar esta lista para ver todos los controladores conocidos por Samba. El nuevo controlador debería estar entre ellos. Cada tipo de cliente sólo muestra la lista de su propia arquitectura. Si no instala cada controlador en todas las plataformas este listado podría ser distinto visto desde Windows95/98/ME o Windows NT/2000/XP.)

  • Desde un cliente Windows 200x/XP client (no Windows NT) vaya al entorno de red, busque el servidor Samba y abra la carpeta de impresoras. Con el botón derecho sobre el fondo de la ventana sin ninguna impresora seleccionada escoja propiedades. En la pestaña de controladores verá el nuevo controlador. Esta vista le permite también comprobar la listas de ficheros pertenecientes a ese controlador (esto no funciona con Windows NT, sólo funciona con Windows 2000 y Windows XP; Windows NT no tiene una pestaña de controladores). Un método alternativo y más rápido para que Windows 2000/XP inicie este diálogo es tecleando en una ventana DOS (tiene que poner, por supuesto, el nombre de su propio servidor Samba en lugar de Samba-CUPS):

    rundll32 printui.dll,PrintUIEntry /s /t2 /n\\Samba-CUPS

  • Ejecute la siguiente orden desde una shell UNIX donde Samba-CUPS es el nombre del host Samba y xxxx representa la contraseña de root para Samba:

    rpcclient -U'root%xxxx' -c 'enumdrivers' Samba-CUPS

    Aparecerá una lista con todos lso controladores que Samba conoce. El nuevo controlador debería estar entre ellos, pero sólo bajo el encabezado [Windows NT x86], no bajo [Windows 4.0], ya que no ha instalado esa parte ¿no?. En nuestro ejemplo se llama dm9110. TEnga en cuentaq ue la tercera columna muestra los otros controladores instalados dos veces, una vez por cda arquitectura soportada. Nuestro nuevo controlador sólo aparece para Windows NT 4.0 o 2000. Para tenerlo también para Windows 95, 98 y ME, habrá que repetir el todo proceso para la arquitectura WIN40.


Flexibilidad del nombre del controlador específico

Puede asignar el nombre que quiera al controlador. Si repite el paso adddriver con los mismos ficheros que antes pero con un un nombre de controlador direferente, todo funcionará igual:


root# rpcclient -Uroot%xxxx         \
  -c 'adddriver "Windows NT x86"                     \
  "mydrivername:HDNIS01_de.DLL:              \
  Hddm91c1_de.ppd:HDNIS01U_de.DLL:HDNIS01U_de.HLP:   \
  NULL:RAW:Hddm91c1_de.DLL,Hddm91c1_de.INI,          \
  Hddm91c1_de.dat,Hddm91c1_de.def,Hddm91c1_de.hre,   \
  Hddm91c1_de.vnd,Hddm91c1_de.hlp,Hddm91c1KMMin.DLL, \
  HDNIS01Aux.dll,HDNIS01_de.NTF,Hddm91c1_de_reg.HLP' Samba-CUPS
 

cmd = adddriver "Windows NT x86" \
 "mydrivername:HDNIS01_de.DLL:Hddm91c1_de.ppd:HDNIS01U_de.DLL:\
  HDNIS01U_de.HLP:NULL:RAW:Hddm91c1_de.DLL,Hddm91c1_de.INI,           \
  Hddm91c1_de.dat,Hddm91c1_de.def,Hddm91c1_de.hre,                    \
  Hddm91c1_de.vnd,Hddm91c1_de.hlp,Hddm91c1KMMin.DLL,                  \
  HDNIS01Aux.dll,HDNIS01_de.NTF,Hddm91c1_de_reg.HLP"

Printer Driver mydrivername successfully installed.

Podrá asociar ese driver a cualquier cola de impresora, pero es su responsabilidad que los driver asociados a la cola de impresión funcionen con la correspondiente impresora. No puede ejecutar You cannot run the rpcclientadddriver repetidamente. Cada ejecución elimina los ficheros que había puesto en el servicio [print$] moviéndolos a los respectivos subdirectorios. Por tanto tendrá que ejecutar smbclient ... put antes de cada rpcclient ... adddriver.

Ejecutando rpcclient con setdriver

Samba necesita saber qué driver posee cada impresora, crear una asociación entre controladores e impresoras y almacenarla en los ficheros TDB. La orden rpcclient setdriver hace exactamente esto:


root# rpcclient -U'root%xxxx' -c 'setdriver dm9110 mydrivername' Samba-CUPS
 cmd = setdriver dm9110 mydrivername

Successfully set dm9110 to driver mydrivername.

Ah, no, no quiero hacerlo. Repito, esta vez con el nombre que pretendía:


root# rpcclient -U'root%xxxx' -c 'setdriver dm9110 dm9110' Samba-CUPS
 cmd = setdriver dm9110 dm9110
Successfully set dm9110 to driver dm9110.

La sintaxis de la orden es :


rpcclient -U'root%Sambapassword' -c 'setdriver printername \
 drivername' Samba-Hostname. 

Ahora hemos hecho la mayor parte del trabajo, pero no todo.

Observación

La orden setdriver sólo funciona si Samba ya conoce la impresora. Un bug en 2.2.x impedia a Samba reconocer las impresoras recién instaladas. Tiene que reiniciar Samba, o al menos enviar la señañ HUP a todos los procesos smbd en ejecución por ejemplo con: kill -HUP `pidof smbd`.


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:
Alquiler de motos en Ibiza.

ISO 9000 documentación y asesoría

Impresenteibols:Humor Jazz, música en vivo