Conseguir hacer funcionar cualquier impresora en Terminal Server

Atención: Esta entrada es altamente técnica y si no sabes que siginfica el título, mejor no te la leas o no volverás jamás a entrar en este blog :·)

La gama de sistemas operativos de servidor de Windows ofrece un sistema de teletrabajo llamado «Escritorio remoto», que se compone de un servidor llamado «Terminal Server» y un programa cliente llamado «Conexión a escritorio remoto» que viene de serie con todos los Windows desde Windows 2000.

Este sistema de teletrabajo se basa en que el ordenador «cliente» se conecta al servidor, y abre en él una sesión; las entradas del usuario mediante el teclado y el ratón se envían por Internet (o por red) y el Terminal Server devuelve la imagen de pantalla resultante al cliente.

Esto permite que estés donde estés, y estés en el ordenador que estés, siempre puedas usar los programas que hay instalados en tu Terminal Server.

Una de las características más interesantes de Terminal Server es la posibilidad de imprimir en una impresora conectada al cliente. Pero no es ni de lejos tan fácil como el resto de las características de Terminal Server, ya que para que funcione, tanto el ordenador cliente como el servidor tienen que tener los controladores de esa impresora; sino la impresora simplemente no estará en la lista de impresoras del escritorio remoto.

Quizá sobre el papel no parece tan complicado; simplemente descargas los controladores de la impresora en el servidor y los instalas. ¿Fácil, verdad?. Pues no.

Ya me he encontrado diversas veces con el siguiente problema: no puedo usar una impresora en un cliente de Terminal Server, ya que no puedo instalar los controladores de la impresora en el servidor porque en el CD de instalación están «ocultos» o algo así. Esto es habitual en las impresoras de HP (supongo que otros fabricantes también), que no permiten añadir la impresora si no instalas el gigantesco software que hay detrás, e incluso hay veces que ni haciéndolo.

Un ejemplo práctico es el que me ha ocupado hoy: Tenía que instalar en el Terminal Server (en adelante TS) el driver de una HP OfficeJet 5615, una multifunción con fax de inyección de tinta.

Problema nº 1: La impresora no aparece cuando el cliente de TS se conecta al servidor:
Solución: Activar el modo de retroceso PCL de TS, así:
Ejectuar las directivas de grupo (o políticas de grupo) haciendo Inicio -> ejecutar -> gpedit.mmc
En el árbol de la izquierda, vamos a «Directiva Equipo Local» -> «Configuración del equipo» -> «Plantillas administrativas» -> «Componentes de Windows» -> «Terminal Services» -> «Redirección de datos cliente-servidor». En el panel de la derecha, cambiamos el valor de la configuración «Comportamiento del controlador de impresora de retroceso de Terminal Server» a «Habilitada» y luego poner «Usar PCL si ninguno se encuentra».
Cerramos la sesión de terminal server y la volvemos a abrir; las impresoras ya aparecen; sin embargo las que no tengan los controladores instalados en el servidor, usarán el controlador de la «HP Deskjet 500», un controlador muy básico y que en algún caso (léase en el caso de la OJ 5615) no funciona.

Problema nº 2: La impresora no se puede instalar en el servidor porque el instalador no soporta Windows 2003.
Solución: Truco «guarro» de hacer clic derecho sobre el «setup.exe», propiedades, y activar el modo de compatibilidad para Windows XP.
Aún y así, los controladores no se instalan, ya que la impresora debe estar físicamente conectada para que éstos se instalen.

Problema nº 3: Si la impresora no está físicamente conectada, no se instalan los drivers
Solución: Instalar los drivers de forma manual, usando estos comandos en el servidor:

rundll32 printui.dll,PrintUIEntry /ia /m "HP Officejet 5600 series" /h "Intel" /v "Windows 2000 o XP" /f "D:\hpoprn08.inf"
rundll32 printui.dll,PrintUIEntry /if /b "HP OJ 5600" /f D:\hpoprn08.inf /r "lpt1:" /m "HP Officejet 5600 series"

En mi caso el archivo inf era el hpoprn08.inf, pero puede tener cualquier nombre. Se tiene que hacer una búsqueda textual dentro de los archivos INF que contiene el CD de instalación de la impresora (o los controladores descargados de internet) por el texto exacto del nombre de la impresora cuando ésta se instala con el nombre por defecto. En mi caso era «HP Officejet 5600 series». El texto aparece en varios archivos INF, pero el que me ha funcionado al final es el que hay especificado ahí.

El nombre de «HP OJ 5600» lo he puesto yo (manualmente), y la impresora se conecta por LPT1: pero de momento eso no importa demasiado.

Una vez ejecutados esos dos comandos, tenemos la impresora creada; no sirve porque está conectada al LPT1; pero ahora, al estar instalado el driver ya en el servidor, cuando se inicie sesión el driver adecuado se seleccionará automáticamente.

De no hacerlo, se puede cambiar de forma manual yendo a Inicio -> Impresoras y faxes.
Hacemos clic derecho sobre la impresora en cuestión, y seleccionamos «Propiedades».
Vamos a la pestaña «Opciones avanzadas» y en la lista desplegable «Controlador», seleccionamos el controlador correcto para la impresora.

Espero que esto pueda ayudar a alguien que también se haya peleado mucho para conseguir hacer funcionar sus impresoras en Terminal Server.

Publicada el
Categorizado como General

126 comentarios

  1. muy buen tema nada mas una pregunta mira yo tengo varias terminales las cuales uso como punto de venta el detalle esta en que uso un sofware hecho bajo msdos y usan el puerto lpt1 es decir uso impresoras epson lx de las de matriz de punto con las laser y las de inyeccion no hay ningun problema pero con estas aun no e podido echralas a andar a lo mejor me puedas ayudar …. de antemano muchas gracias …

  2. No entiendo muy bien que me estás preguntando. No se exactamente cuál es el comportamiento de una impresora redirigida de Terminal Server como impresora para MS-DOS; hace mucho que tengo el gusto de no trabajar con ninguna aplicación para ese S.O.
    Igual te refieres a que tienes una 5600 y no te funciona bien, igual eso es porque hoy en día las impresoras (excepto la mayoría de las láser y gamas antiguas o profesionales de inyección) no tienen emulación Epson LX. Eso no tiene un remedio fácil, aunque he oído que existen emuladores de Epson LX que permiten imprimir con este idioma en cualquier impresora de Windows.
    Si no eran esas las respuestas que esperabas, déjame otro comentario con tu pregunta algo más elaborada.

  3. Hola tengoo un problema similar a lo que comentaste, pero a diferencia tengo un server 2000, no el 2003 que no tiene la politica en el gpedit “Redirección de datos cliente-servidor”, mi intencion es que el ts levante la impresora remota pero que la predeterminada sea local y que no se cambie con las sucesivas sesiones, me podrias decir como hacerlo o si tenes alguna idea?
    Gracias

  4. soyloquepienso: Hay un truco para cualquier instalador:
    -Abre un explorador de archivos, y en la barra de direcciones escribe %temp% y pulsa enter.
    -Minimiza esta ventana (no la cierres)
    -Ejecuta el instalador, pero no hagas nada con él (no pulses siguiente, ni nada)
    -Vuelve al explorador, y baja la barra de desplazamiento hasta el final para ver cuáles son los últimos archivos (normalmente carpetas) creados. Seleccionalos todos, cópialos y pégalos en otra carpeta.
    -Ahora ya puedes cancelar el instalador.
    -Si no encuentras los drivers dentro de las carpetas, pero si hay otros instaladores (exes de gran tamaño, cabs o MSIs), puedes volver a hacer el mismo proceso pero ejecutando esos archivos.

    Yo alguna vez he tenido que hacer el proceso 3 veces, pero al final en %temp% siempre encuentras lo que buscas…

  5. a ver, yo sigo aqui peleandome con las impresoras.
    Ejemplo HP Photosmart C3180 series, descomprimo en temporal cojo los drivers.
    Busco la cadena y bueno me aparece 3 archivos que aqui detallo:
    hpaioa.inf
    hpoglu09.inf
    hpoupdmn.inf

    Sigo los pasos y con el unico que no tengo errores es con hpaioa.inf, se instala todo correctamente pero luego cuando el cliente se conecta na de na no le crea la impresora en la sesion. He comprobadoel controlado y esta todo correcto (eso creo).
    Los otros 2 archivos, me devuelve una ventana de argumentos invalidos
    Alguna idea?
    graciasss

  6. Buenas,

    Llevo 3 días loco con una impresora HP laserjet 1020 USB. EL servidor es TS 2000.

    El driver está en los dos equipos, pero no hay manera… me aparece y me imprime, pero cuando abro varias sesiones desaparece… el puerto que usa el TS bla bla y cuando cierro y abro sesion se convierte en TS inactive y ya no hay manera…

    Alguien sabe indicarme???

    thanx

  7. hola kisiera saber como veo en esa impresora si ya se me acabo la tinta por imprimo a blanco y negro y no sale na sale la hoja sin na y pongo de color y si imprime

  8. Elisabeth: Desde una sesión de Terminal Server no puedes usar características avanzadas de una impresora (como el monitor de tinta); pero eso lo deberías poder hacer desde el escritorio normal de tu ordenador. Consulta la documentación de tu impresora.

  9. Solución para las impresoras USB que no se conectan:
    1.- Debe cumplirse una condición fundamental y es que el driver se llame igual e ambos sistemas (cliente y servidor TS). A veces ocurre que en un cliente W98 el nombre varía en un espacio o una coma y haría que retocarlo. En otros casos es un problema de lenguaje el que hace que los nombres no coincidan.
    2.- Comparte la impresora USB en el cliente, con permisos totales mejor.
    3.- Conecta la impresora compartida a LPT1, LPT2 o LPT3, es decir, la mapeas a un puerto con otro nombre.
    Ahora sí se conectará por TS, ya que el problema no suele ser de driver sino del puerto USB.

  10. Seitol:
    Sobre el punto 1, es interesante saber lo del problema de denominación de la impresora si el paquete de drivers es distinto, como en el caso de drivers para 2000/XP y 95/98/ME.
    Sobre el punto 2, nunca he tenido que compartir una impresora para que me funcionara en TS; de hecho si no recuerdo mal ninguna de las impresoras que tengo en los clientes de TS están compartidas. Quizá es algo que ayuda si hay alguna impresora rebelde.
    El punto tres no lo entiendo. Cuando dices conectar, ¿a que te refieres? ¿Conectarla dese el servidor? Además, si conectas la impresora desde el servidor y le cambias el puerto, no imprimirá en el cliente… te agradecería que aclarases ese punto.
    De todas formas gracias por tus comentarios.

  11. Contestando a Spyd, el punto 2 es necesario sólo para impresoras USB que no hay manera de ver en el servidor, y además, poder aplicar el punto 3: conectar, mapear, redirigir la impresora compartida a un puerto físico.

  12. Dimoca: Si quieres que te ayude, necesito muchos más datos… marca y modelo de la impresora, versión del Windows Server que usas para el terminal server, versión de Windows que usas en el cliente… Sin todos estos datos lo que te podría decir sería tan genérico que de poco te serviría.

  13. Buenas Tardes, primero que nada, permiteme felicitarte Spyd por este blog!!! Al fin logro conseguir un tema relacionado con el problema que estoy presentando. Gracias por compartir tus conocimientos…

    Mi problema es el siguiente:
    Tengo un Servidor Windows Server 2000

    me conecto remotamente via terminal server desde mi estación cliente que tiene WinXP

    He adquirido 2 impresoras HP y ninguna de las 2 me funcionan

    son la HP 1006 y Hp 2014

    he hecho de todo.. y nada me ha funcionado..

    y cuando lei esto me emocione pensando q me funcionaria pero el comando que mencionas alli cuando lo ejecuto no me funciona, te agradeceria mucho si sabes de alguna solucion….

    saludos

  14. Yoselin: Debo suponer que las impresoras son las LaserJet P1006 y P2014.
    Después tendrías que comprobar si estas impresoras son impresoras PCL o GDI. Las impresoras GDI aunque se pueden llegar a a hacer funcionar, las posibilidades son bajas -es lo mismo que ocurre con las impresoras de inyección de tinta; casi todas son GDI-. Deberías poder averiguar si las impresoras son GDI o PCL en las especificaciones de la impresora o llamando a la atención técnica de la impresora.
    Por cierto, si llamas a la atención técnica, ni se te ocurra comentarles nada de Terminal Server, en cuanto lo menciones se cerrarán en banda diciendo que «nosotros no soportamos Terminal Server».
    Si las impresoras son PCL, con instalar los drivers en el servidor y en el cliente, debería funcionar… porque si no funciona, no se que decirte, ya que Windows 2000 no tiene la opción de compatibilidad PCL que menciono en la entrada, sólo el Windows Server 2003 o superior.

  15. Muy bueno el articulo, gracias por compartirlo.Tengo win 2003 server con sucursales TS, con XP Prof e impresoras okidata microline 320 turbo. Esta configuración esta funcionando. Recientemente abrimos una nueva sucursal e implementamos todo de la lisma manera PERO la impresora no permite que TS la vea … que puede estar sucediendo.
    imprime loclamente esta compartida pero TS no la ve aunque digite \\192.168.XXX.XXX\\okidataM\ me dice que ya no eta conectada o que el nombre esta mal digitado y no hay caso que estare dejando atras?? agradecere tu colaboración

  16. «Buenas,

    Llevo 3 días loco con una impresora HP laserjet 1020 USB. EL servidor es TS 2000.

    El driver está en los dos equipos, pero no hay manera… me aparece y me imprime, pero cuando abro varias sesiones desaparece… el puerto que usa el TS bla bla y cuando cierro y abro sesion se convierte en TS inactive y ya no hay manera…

    Alguien sabe indicarme???

    thanx»

    Este mismo problema lo tengo yo. Nunca puesto el acceso a 3 escritorios distintos desde un mismo PC, y cuando menos te lo esperas deja de funcionar la impresora, pero al rato lo vuelves a intentar SIN CAMBIAR NADA ( Sorry Caps, pero es que es para emarcar ;9 ) vuelve ha funcionar.
    Ha ver si me podeis dar una idea del posible conlfictio y si existe una solucion.

Dejar un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.