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

Otros detalles

Su controlador está instalado. Ahora está listo para la instalación Point'n'Print de los clientes. Puede que haya intentado descargar y usarlo en su primer máquina cliente, pero espere. Primero vamos a asegurarnos de que conoce algunos trucos que pueden ser útiles. Por ejemplo, supongamos que no ha definido los valores predefinidos para la impresora, como se indicaba con atenrioridad. Entonces sus usuarios se quejarán de varias cosas (como por ejemplo que necesitan poner el tamaño del papel cada vez que imprimen).

Establecer las opciones preestablecidas de los controladores clientes

La última frase puede ser vista con ideas contrapuestas entre algunos usuarios y los administradores. Se han esforzado durante horas y no han podido llegar al punto donde sus valores parezca que se han guardado. La confusión es que en los diálogos con múltiples pestañas que aparecen al pulsar con el botón derecho las propiedades puede llegar a dos diálogos que parecen idénticos, cada uno de ellos diciendo que le va a ayudar a establecer sus preferencias de tres formas diferentes. Aquí está la respuesta definitiva a las FAQ del establecimiento de controladores predefinidos:

No puedo guardar las opciones de impresión para todos los usuarios de Windows 200x/XP. ¿Por qué?  ¿Cómo los está haciendo? Creo que de la forma equivocada. Hay tres formas diferentes de obtener un diálogo que parezca establecerlo todo. Los tres diálogos parecen iguales pero sólo uno de ellos hace lo que necesita. Tiene que ser Administrador o Print Administrator para hacer esto para todos los usuarios. Aquí indicamos como lo reproduzco en un XP Professonal: La siguiente lista necesita puntos tras las letras y números:::::::::

  1. El primero equivocado:

    1. Abrir carpeta impresoras.

    2. Botón derecho en la impresora (remoteprinter enn cupshost) y en el menú contextual seleccionar configuración de la impresora.

    3. Mire el diálogo con atención y recuerde a qué se parece.



  2. El segundo método equivocado:

    1. Abrir la carpeta de impresoras

    2. Botón derecho en la impresora (remoteprinter enn cupshost) y en el menú contextual seleccionar propiedades

    3. Puse en la pestaña General

    4. Pulse en preferencias de impresión

    5. Se abre un nuevo diálogo. Mantenga este diálogo abierto y vuelva al dialogo padre.



  3. La tercera forma, la correcta: (debería hacerlo desde el principio, siga los pasos 1 y 2 del método anterior)

    1. Pulse en la pestana de avanzadas. Si está inhabilitada entonces ha iniciado la sesión con un usuario sin privilegios.

    2. Pulse en las opciones de impresión.

    3. En cualquiera de las dos nuevas pestañas pulse en el botón avanzadas.

    4. Se abre un nuevo diálogo. Compare este con el otro. Son idénticos a los dos anteriores.



¿Ve alguna diferencia entre los dialogos? Yo no. Sin embargo sólo el último, de los seis pasos, va a guardar de forma permanente los valores qeu se va a convertir en preestablecidos. para los nuevos usuarios. Si quiere que todos los clientes tengan los mismos valores tiene que seguir estos pasos como administrador (printer admin) antes de que un cliente descargue el controlador (los clientes con postrioridad pueden establecer sus propios valores de usuarios por los procedimientos A o B). Windows 200x/XP permite valores preestablecidos para cada usuario, pero antes de modificarlos asigna los preestablecidos. Los diálogos padre que parecen idénticos tienen ligeras diferencias en los nombres de la ventana; uno se llama Default Print Values for Printer Foo on Server Bar" (que es el que necesita) y el otro se llama Print Settings for Printer Foo on Server Bar. El último es al que llega cuando con el botón derecho selecciona la configuración de la impresora. Este es el que habría tomado en los días de Windows NT, por tanto es lógico intentar lo mismo en Windows 200x/XP. No soñaría con que ahora hay una nueva ruta diferente para llegar a dos diálogos idénticos pero con funcionalidades distintas.

Truco

Intente (en Windows 200x/XP) ejecutar esta orden (como usuario con los privilegios correctos):

rundll32 printui.dll,PrintUIEntry /p /t3 /n\\Samba-SERVER\printersharename

Para ver la pestaña con el botón de las opciones predeterminadas de impresión (el que necesita), también puede ejecutar:

rundll32 printui.dll,PrintUIEntry /p /t0 /n\\Samba-SERVER\printersharename

Para ver la pestaña con el botón de prefencias de impresión (el que no establece los valores globales) puede ejecutar las órdenes desde una ventana DOS o desde Inicio -> Ejecutar.

Instalaciones con gran número de impresoras

Una cosa que ha aparecido durente las reciente fase de desarrollo de Samba es la necesidad de admitir controladores para cientos de impresoras. El asistente de Windows NT es, por decirlo suave, un poco torpe. Si no quiere tomarle asco al ratón después de estar mucho rato haciendo click, lo mejor es ir pensando en un script no interactivo.

Si más de una impresora usa el mismo controlador, se puede usar la ordem rpcclient setdriver para asociar el controlador con una cola instalada. Si el controlador está cargado en [print$] una vez y registrado cen el TDB de impresión, entonces se puede usar para múltiples colas. En este caso necesita repetir la suborden setprinter subcommand de rpcclient para cada cola (sinla necesidad de usar adddriver repetidamente). Lo siguiente es un ejemplo de como se puede realizar esto:


root# rpcclient Samba-CUPS -U root%secret -c 'enumdrivers'
 cmd = enumdrivers
 
 [Windows NT x86]
 Printer Driver Info 1:
   Driver Name: [infotec  IS 2075 PCL 6]
 
 Printer Driver Info 1:
   Driver Name: [DANKA InfoStream]
 
 Printer Driver Info 1:
   Driver Name: [Heidelberg Digimaster 9110 (PS)]
 
 Printer Driver Info 1:
   Driver Name: [dm9110]

 Printer Driver Info 1:
   Driver Name: [mydrivername]

 [....]


root# rpcclient Samba-CUPS -U root%secret -c 'enumprinters'
 cmd = enumprinters
   flags:[0x800000]
   name:[\\Samba-CUPS\dm9110]
   description:[\\Samba-CUPS\dm9110,,110ppm HiVolume DANKA Stuttgart]
   comment:[110 ppm HiVolume DANKA Stuttgart]
 [....]


root# rpcclient Samba-CUPS -U root%secret -c \
  'setdriver dm9110 "Heidelberg Digimaster 9110 (PS)"'
 cmd = setdriver dm9110 Heidelberg Digimaster 9110 (PPD)
 Successfully set dm9110 to driver Heidelberg Digimaster 9110 (PS).


root# rpcclient Samba-CUPS -U root%secret -c 'enumprinters'
 cmd = enumprinters
   flags:[0x800000]
   name:[\\Samba-CUPS\dm9110]
   description:[\\Samba-CUPS\dm9110,Heidelberg Digimaster 9110 (PS),\
     110ppm HiVolume DANKA Stuttgart]
   comment:[110ppm HiVolume DANKA Stuttgart]
 [....]


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


root# rpcclient Samba-CUPS -U root%secret -c 'enumprinters'
 cmd = enumprinters
   flags:[0x800000]
   name:[\\Samba-CUPS\dm9110]
   description:[\\Samba-CUPS\dm9110,mydrivername,\
     110ppm HiVolume DANKA Stuttgart]
   comment:[110ppm HiVolume DANKA Stuttgart]
 [....]

Puede no ser fácil reconocer que en la primera llamada a enumprinters mostrada en la impresora dm9110 con una cadena vacía donde deberíamos haber incluido el controlador (entre las dos comas en el campo descripción). Después la orden setdriver es correcta también.

Añadir una nueva impresora con el asistente de Windows NT

Por defecto, Samba exhibe todos los servicios de impresión definidos en smb.conf en la carpeta de impresoras. También en esta carpeta está el icono del asistente para agregar impresoras. El asistente se mostrará sólo si:

  • El usuario conectado puede ejecutar un OpenPrinterEx(\\server) con privilegiso administrativos(i.e., root o printer admin).

    Truco

    Intente desde una ventana DOS de Windows 200x/XP:

    runas /netonly /user:root rundll32 printui.dll,PrintUIEntry /p /t0 /n \\Samba-SERVER\printersharename

    Pulse en preferencias de impresión.

  • ... contiene el valor show add printer wizard = yes (el predeterminado).

El asistente puede hacer varias cosas:

  • Cargar un nuevo controlador en el servicio [print$].

  • Asociar un controlador subido con una cola de impresión existente.

  • Cambiar el controlador actual por una una cola existente con uno que haya sido cargado antes.

  • Agregar una impresora completamente nueva al host Samba (sólo en conjunción con only in conjunction with a working add printer command. Un correspondiente delete printer command para eliminar las entradas).

El último (agregar una nueva impresora) requiere mas esfuerzos que los anteriores. Para usar el asistente correctamente para agragar una impresora a Samba, el parámetro add printer command tiene que tener un valor definido. El programa hook debe agregar lla imporesora al sistema de imporesión UNIX (i.e., a /etc/printcap, /etc/cups/printers.conf u otro fichero adecuado) y para smb.conf si es necesario.

Cuando use el asistente desde un cliente, si el nombre de servicio de la impresora no existe, smbd ejecutará la orden add printer command y la analiza para intentar encontrar el nuevo servicio de impresión. Si el servicio aun no está definido le devuelve al cliente un error de acceso dengado. El parámetro add printer command se ejecuta bajo el contexto del usuario conectado, no necesariamente la cuenta de root. Un map to guest = bad user puede realizar la conexión con los privilegios equivocados. Debería comprobarlo usando la orden smbstatus.

Mensaje de Erro: Cannot connect under a different Name;

Una vez que se ha conectado con las credenciales equivocadas no hay forma de volver la situación que cerrar todos los explorer y quizas reiniciar.

  • La orden net use \\Samba-SERVER\sharename /user:root le da un mensaje de error: Multiple connections to a server or a shared resource by the same user utilizing the several user names are not allowed. Disconnect all previous connections to the server, esp. the shared resource, and try again.

  • Cada intento de conectar una unidad de red a \\SambaSERVER\\print$ para z: aparece: This network folder is currently connected under different credentials (username and password). Disconnect first any existing connection to this network share in order to connect again under a different username and password.

Luego cierre todas las conexiones. Lo intenta de nuevo y obtiene el mismo mensaje. Ha comprobado con Samba usando smbstatus. Sí, hay más conexiones. Las mata todas. El cliente todavía da el mismo mensaje de error. Mire el fichero smbd.log con un debug level alto e intente reconectar. El mismo mensaje de error pero ni una íinea de log. Se pregunta si siquiera ha intentado conectar. Ejecuta ethereal y tcpdump mientras intenta conectar. Resultado: ni un buyte por la red. Windows todavía da el mismo mensaje de error. Cierra todos las ventanas de Explorer y comienza de nuevo. Trata de conectar y esta vez funciona. Windows parece guardar la información de las conexiones en cache de alguna forma y no se actualiza (si no teien suerte puede que tenga que reiniciar para que no aparezca el mensaje).

La forma más fácil de forzar la terminación de todas las conexiones desde su cliente a un servidor es ejecutando:


C:\>  net use * /delete

Esto desconectará todas las unidades asociadas y le permite crear conexiones nuevas como se necesita.

Cuidados al ensamblar los ficheros del controlador

Tiene que tener un extremo cuidado cuando anote los ficheros pertenecientes a un controlador particular. No confunda, los ficheros de versión 0 (para Windows 9x/Me, van en [print$]/WIN/0/), la versión 2 (controlador modo Kernel para Windows NT, va en [print$]/W32X86/2/ lo usan Windows 200x/XP también), y version 3 (modo no-Kernel va en [print$]/W32X86/3/ no se pueden usar en Windows NT). Con frecuencia estas diferentes versiones de los controladores contienen ficheros con el mismo nombre pero muy diferentes en la reaidad. Si los observa desde Windows Explorer (están en %WINDOWS%\system32\spool\drivers\W32X86\), probablemnente verá nombres en mayúsculas, mientras una orden enumdrivers de Samba mostraría nombres meaclados o en minúsculas. Por tanto es fácil confundirlos. Si los instala manualmente usando rpcclient y subórdenes, puede includo terminar correctamente. Sólo más tarde cando intente instalar un cliente vará mensajes de error como This server has no appropriate driver for the printer.

Aquís un ejemplo. Le propongo mirar con detalle varios ficheros, comparar nombres y deletreo y descubrir las diferencias en la composición de las versiones 2 y 3. Observe que la version 0 continen 40 ficheros, por razones d espacio lo dejo fuera:


root# rpcclient -U 'Administrator%secret' -c 'enumdrivers 3' 10.160.50.8 

 Printer Driver Info 3:
         Version: [3]
         Driver Name: [Canon iR8500 PS3]
         Architecture: [Windows NT x86]
         Driver Path: [\\10.160.50.8\print$\W32X86\3\cns3g.dll]
         Datafile: [\\10.160.50.8\print$\W32X86\3\iR8500sg.xpd]
         Configfile: [\\10.160.50.8\print$\W32X86\3\cns3gui.dll]
         Helpfile: [\\10.160.50.8\print$\W32X86\3\cns3g.hlp]
 
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\aucplmNT.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\ucs32p.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\tnl32.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\aussdrv.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cnspdc.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\aussapi.dat]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cns3407.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\CnS3G.cnt]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\NBAPI.DLL]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\NBIPC.DLL]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcview.exe]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcdspl.exe]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcedit.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcqm.exe]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcspl.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cfine32.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcr407.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\Cpcqm407.hlp]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cpcqm407.cnt]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\3\cns3ggr.dll]
 
         Monitorname: []
         Defaultdatatype: []

 Printer Driver Info 3:
         Version: [2]
         Driver Name: [Canon iR5000-6000 PS3]
         Architecture: [Windows NT x86]
         Driver Path: [\\10.160.50.8\print$\W32X86\2\cns3g.dll]
         Datafile: [\\10.160.50.8\print$\W32X86\2\IR5000sg.xpd]
         Configfile: [\\10.160.50.8\print$\W32X86\2\cns3gui.dll]
         Helpfile: [\\10.160.50.8\print$\W32X86\2\cns3g.hlp]
 
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\AUCPLMNT.DLL]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\aussdrv.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\cnspdc.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\aussapi.dat]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\cns3407.dll]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\CnS3G.cnt]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\NBAPI.DLL]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\NBIPC.DLL]
         Dependentfiles: [\\10.160.50.8\print$\W32X86\2\cns3gum.dll]
 
         Monitorname: [CPCA Language Monitor2]
         Defaultdatatype: []

Si escribimos lso ficheros version 2 y version 3 en ficheros de texto diferentes y comparamos los resultados veremos este esquema::


root# sdiff 2-files 3-files


 cns3g.dll                     cns3g.dll
 iR8500sg.xpd                  iR8500sg.xpd
 cns3gui.dll                   cns3gui.dll
 cns3g.hlp                     cns3g.hlp
 AUCPLMNT.DLL                | aucplmNT.dll
                             > ucs32p.dll
                             > tnl32.dll
 aussdrv.dll                   aussdrv.dll
 cnspdc.dll                    cnspdc.dll
 aussapi.dat                   aussapi.dat
 cns3407.dll                   cns3407.dll
 CnS3G.cnt                     CnS3G.cnt
 NBAPI.DLL                     NBAPI.DLL
 NBIPC.DLL                     NBIPC.DLL
 cns3gum.dll                 | cpcview.exe
                             > cpcdspl.exe 
                             > cpcqm.exe
                             > cpcspl.dll
                             > cfine32.dll
                             > cpcr407.dll
                             > Cpcqm407.hlp
                             > cpcqm407.cnt
                             > cns3ggr.dll

No se confunda, los ficheros del controlador de cada versión con idénticos nombres pueden diferir en el contenido, como puede ver en las comparacinoes de tamaños:


root# for i in cns3g.hlp cns3gui.dll cns3g.dll; do                  \
           smbclient //10.160.50.8/print\$ -U 'Administrator%xxxx' \
           -c "cd W32X86/3; dir $i; cd .. ; cd 2; dir $i";      \
                   done

  CNS3G.HLP               A   122981  Thu May 30 02:31:00 2002
  CNS3G.HLP               A    99948  Thu May 30 02:31:00 2002

  CNS3GUI.DLL             A  1805824  Thu May 30 02:31:00 2002
  CNS3GUI.DLL             A  1785344  Thu May 30 02:31:00 2002

  CNS3G.DLL               A  1145088  Thu May 30 02:31:00 2002
  CNS3G.DLL               A    15872  Thu May 30 02:31:00 2002

En mi ejemplo incluso había más diferencias que las mostradas aquí. Conclusión: tiene que tener cuidado para seleccionar los ficheros del controlador correcto para cada versión. No se base en nombres y no intercambie ficheros entre versiones.

Samba y puertos de impresora

Los servidores de impresión Windows NT/2000 asocian un uerto a cada impresora. Normalmente tiene la forma LPT1:, COM1:, FILE:, y otros. Samba también tiene soporte para el concepto de puerto asociado a una impresora. De forma predefinida tenemos sólo un puerto de impresora llamado Samba Printer Port. Samba realmente no necesita ese port para imprimir; más bien es un requisito d elos clientes Windows. Esto insisten en que se les diga un puerto disponible cuando solicitan esta información, o si no presentarían un mensaje de error. Samba falsifica la información del puerto para tener felices a los clientes Windows.

Samba no admite el concepto de Printer Pooling interno. Printer Pooling asigna una impresora lógica a multiples puertos como un balanceo de carga o para fallos.

Si necesita definir múltiples puertos por una razón u otra (mis usuarios y mis jefes no deberían saber que estan utilizando Samba), configure el parámetro enumports command que se puede usar para definir programas externos que listados de puertos en un sistema.

Evitando las desconfiguraciones comunes de los clientes

Laa impresión funciona pero persisten algunos problemas.La mayoría de los trabajos imprimen pero algunos no. Algunos trabajos tienen problemas con las fuentes, que tienen buen aspecto. Muchos trabajos emprimen rápido pero otros son extremadamente lentos. No podemos cubrirlo todo, pero le rogamos que lea los párrafos sobre Evitar la configuración errónea del controlador PostScript en el capítulo dedicado ala impresión con CUPS.


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