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. Hola tengo un problema con impresoras que imprimen con TS bajo DOS. Basicamente consiste en que para lograr esto, en el server de TS cuando aparece la impresora hay que compartirla para que en el cliente de TS (en la sesion) se pueda capturar el puerto (net use lptx: \\localhost\nombre_de_la_impresora_compartida) Ahora bien, todo funciona bién hasta que un dia la impresora que estaba compartida, luego de cerrar y abrir la sesión, ya no lo esta (magia??), entonces hay que iniciar la sesión de TS, volverla a compartir en el server de TS y volver a ejecutar el net use en la sesión del cliente. Alguien me podría decir por que se «descomparte» la impresora?
    Muchas gracias

  2. Javier: El método que detallas es bastante chapucero, y sólo funciona si el cliente y el servidor «se ven», osea están en la misma red o conectados a través de una VPN.
    Sobre el problema que detallas, igual lo puedes solucionar iniciando sesión como administrador local (no desde un cliente de TS, sino en el ordenador físico) y compartiendo la impresora. Supongo que la compartición se pierde al cerrar la sesión que la compartió; si lo haces con una sesión local el cambio debería ser permanente.

  3. Gracias Spyd!! Te comento: el metodo sera bastante chapucero pero es lo que se hacer, hay otra forma de capturar puertos por DOS a través de Internet en TS? Es mas no es cierto que sea necesario que pertenezcan a la misma red o x VPN, ya te digo, lo estoy haciendo a través de Internet sin VPN, redireccionando puertos, usando RDP con IPs públicas (si ya se, es inseguro, MUY, pero es lo que hay!!!)
    Respecto de la solución: incio sesion como administrador local…donde? en la maquina física que se conecta al TS o en el TS? En el TS, las impresoras NO estan instaladas (aparecen cuando el cliente inicia sesion) sino que tienen sus drivers. Asi que imagino que te refieres a la PC que se conecta al TS, de ser así, lo probaré y te cuento.
    Gracias

  4. Gracias por compartir tus conocimientos.

    Tengo una impresora HP P1006 conectada a mi computadora (con windows XP), ya se instalaron sus drivers en el servidor (Con windows server 2003) que esta en otro estado y del cual acceso un sistema, cuando acceso via terminal al sistema y quiero imprimir en ocasiones no aparece la impresora, otras aparece con un numero desesion pero no la puedo accesar porque no aparece como predeterminada, y en otras ocasiones que si esta como predeterminada mando a imprimir y se queda con el trabajo de impresion no lo libera y ahi se van almacenando. Que puedo hacer ya le he buscado mucho.

    Les agradeceria su apoyo.

  5. Las impresoras remotas a veces tardan en aparecer en el escritorio remoto, y a veces se pueden quedar colgadas si dejas la sesión abierta.
    Lo que tienes que hacer es cerrar la sesión (No uses la X de la pestaña superior, sino botón de inicio -> cerrar sesión), volver a iniciar la sesión y comprobar en la ventana de impresoras si se conectan tus impresoras locales (puede tardar hasta 30 segundos después de iniciar sesión).
    Si se quedan impresiones a medias, o no se imprimen, es señal de que la conexión con la impresora ha fallado. Borra todos los trabajos del escritorio remoto (y de tu equipo local si los hubiese) y cierra y velve a abrir la sesión.
    No todas las impresoras se comportan de forma estable imprimiendo a través de escritorio remoto. Es recomendable no imprimir fotografías o documentos demasiado complejos; si se quieren imprimir documentos de muchas páginas, es mejor imprimir en grupos de pocas páginas.

  6. Holas!!! Perdonad que me entrometa en este «hilo», pero he visto que es muy interesante y que quiza vosotros podriais ayudarme con un problema relacionado. Mi problema es que el cliente no conecta las impresoras, ninguna, y en el registro de sucesos de win2000 no aprace ningun mensaje, ni de conexion, ni de error, ni nada… por lo demas, el terminal server funciona sin problemas y los programas corren, pero no hay impresoras. He probado en otras maquinas con ese mismo usuario y si conectan las impresoras… pero en ese equipo en concreto no… ¿Alguna sugerencia de que puedo mirar? Un millon de gracias por vuestra ayuda por anticipado.

  7. Buenas a todos, comento algo que me viene pasando con las hp p1006/5 que son las sucesoras de las 1015/1018/1020/1022 uds saben, tecnicamente son muy similares pero las nuevas p1005/6 al parecer tienen algun problema con el controlador, porque en mis clientes no las puedo hacer funcionar de manera remota, generan carga excesiba en el spool del servidor y hace que ninguna impresora pueda imprimir, mientras que no tengo problemas con las de la linea 1015/1022, comento esto en relacion al comentario de herlac, escribimos a hp pero no obtuvimos respuesta aun, saludos a todos y si tengo novedades las comentare.

  8. Tengo instalado un un servidor con Windows 2003 Server SMB R2, y en una oficina
    remota, donde accedo al servidor por medio de TS, tengo una estacio de
    trabajo con Windows XP conectado a una red de grupo de trabajo, que comparte
    una impresora epson fx1170 conectada por medio de una interfaz de red.
    claro desde ninguna maquina remota me deja ver las impresoras
    El caso es que no consigo ver la impresora desde el escritorio remoto de
    Terminal Server.

  9. ULISES: Intenta instalar el driver de la impresora en el servidor. Descárgalo e instálalo. Puedes mirar mi entrada sobre instalar impresoras de forma desatendida por si no te permite instalar el driver si no tienes la impresora conectada físicamente.
    Una vez tengas el driver deberías poder usar la impresora desde cualquier equipo que la tenga instalada.

  10. Hola a todos, les comento que tengo el problema que menciona Martin (29/05/09), es decir, no logro hacer imprimir las HP p1005. Estas aparecen en la sesion del terminal server, el cliente la ve sin problemas…. pero cuando se les envia algo para imprimir, no lo hace. Si alguien logro solucionar esto, les agradeceria que los postearan. Gracias de antemano. Saludos

  11. Dejenme decirle que al igual que mucho tengo impresoras HP LaserJet 1005/6 1505/6 y la verdad es que no sirven los controladores con TS, HP npo da solución al problema, no es problema de la impresora ni es problema del controlador, es problema de los drivers…… Si logran hacerlas funcionar sin problemas les agradecería me regalaran la solución

  12. Buenas. no se si ya lo han intentado pero es posible que todo sea porque dentro de una conexion TS el servidor genera puertos de impresion (TS:[nombre de equipo]:PR[xxx]) es decir puertos de impresoras remotas donde xxx es el numero de puerto o impresora al cual se conectan. Si esto no esta configurado de manera correcta jamas o solo por suerte lograran imprimir sobre todo con impresoras USB o de Red. Para configurar esto los pasos en general son:
    1. Instalar la impresora en el PC remoto
    2. Activar Escritorio remoto con la opcion de Recursos Impresoras activo
    3. Conectarse al servidor y entrar al panel de impresoras
    4. Agregar impresora
    4.1. Impresora Local (desactivar busqueda automatica)
    4.2. En la opcion siguiente (PUERTO) chequear el puerto de formato TS:nombre PC:PR002 (esto es un ejemplo del formato de puerto).
    5. terminar la instalacion y listo.

    Nota. Deben aparecer en la lista de puertos solo tantos puertos como impresoras tengan instaladas en el equipo remoto. si aparecen mas es posible que les toque desactivar deteccion automatica de impresoras y unidades en windows.

    Avisen si les sirve de algo mi opinion.

  13. Quiero intentar algo que no sé si es posible, en el trabajo, las cabezas pensantes han decidido dejar un único usuario para conectar por terminal server, por lo que los comerciales entran todos usando el mismo login y password, esto lo he logrado cambiando las directivas para permitir multiples sesiones con el mismo usuario. El problema es la impresión porque el servidor de terminal server me saca las impresoras de TODOS los usuarios, ¿hay alguna manera para que detecte la máquina que se está conectando y solo saque las impresoras correspondientes a la misma?

    Gacias

  14. Adolfo: Este problema lo tengo yo de otra forma. Tengo varias delegaciones que tienen la misma impresora, y cuando se conecta una delegacion, ve su impresora… y las de otras delegaciones. Además, al ser misma marca y modelo, lo único por lo que se diferencian es por el nombre de equipo (Hp Deskjet XXXX Desde NombreEquipo), pero como el texto es muy largo, en algunos programas no se lee.
    Yo lo tengo más o menos solucionado porque por defecto la impresora es la impresora local, así que les digo que no cambien de impresora al imprimir y listo.

  15. compañeros, tengo un problema con2 008, cuando me conecto a traves de la sesion de ts, esta sesion captura mi impresora local (en mi equipo ) sin problemas, pero yo quiero compartir esta impresora en la sesion, pero no me deja, tengo todo gris, y eso que me logueo con el usuario administrador, cual puede ser el problema, dsde ya gracias!

  16. Omar: No es necesario compartir la impresora si la tienen que usar otros usuarios (locales o remotos) del mismo servidor de TS; ya que a los otros usuarios les aparecerá la impresora como «impresora en equipo-remoto» y podrán usarla automátcamente.

  17. Yo tengo un problema parecido. En una delegación hay varios equipos que tienen un impresora en red. Al conectarse al servidor por TS, la impresora se ve, pero al darle imprimir no imprime nada.

  18. Iñaki: Sigue los pasos de la entrada para instalar los drivers de la impresora en el servidor. Si no funcionara, dime que versión de Windows Server y qué impresora es y intentaré echarte una mano.

  19. Los drives enstan instalados en el servidor. Cuando se conecta el usuario por TS tiene instalada la impresora. La version es 2003 R2 y la impresora es una Toshiba e-STUDIO205

  20. Iñaki: Abre una sesión de TS, abre la carpeta de impresoras, abre la impresora en cuestión y luego imprime una página de prueba manteniendo abierta la ventana de la impresora.
    ¿Se genera un archivo de cola?
    ¿Se empieza a enviar y se encalla?
    ¿Envía el archivo correctamente o muestra un error?

  21. No me he leido el resto de comentarios… para mi… eres dios!!!!!

    Me cachis en la mar cuantos quebraderos he tenidoo que aguantar!!!! y al final he activado el cambio de retroceso, que no se que es y funciona!!!!!!

    La madre que me pario!!!!!

    Gracias gracias gracias….y mil gracias.

  22. Spyd: Si se genera una cola de impresion. Luego si que pone imprimiendo y al final da error.
    La impresora esta puyesta en el puerto de red por ejemplo 10.1.1.1 y lo que he cambiado al puerto TSxxx y aún no imprime

  23. Iñaki: La impresora que aparece cuando te conectas a una sesión se crea automáticamente o la has creado tu? Porque por lo que dices de los puertos, parece que la impresora la hayas creado tu, pero es el cliente de TS que tiene que crearla automáticamente. Si tienes la impresora creada en sesión normal en el servidor, elimínala. Luego cuando te conectas a través del cliente de TS debería crearse automáticamente con su puerto correspondiente. Estos puertos son dinámicos, no se pueden establecer fijos.
    Si la conexión al servidor de TS es a través de VPN, una solución de «último recurso» que algún compañero mío usado alguna vez cuando una impresora se negaba totalmente a funcionar, es instalar la impresora como impresora de red local en el servidor. Para ello tendrás que unificar el rango de IPs que usas en la red del servidor y la de la delegación, o jugar con las máscaras de red. El problema es que cuando usas la impresora de ésta forma, la impresión suele ser más lenta.

Dejar un comentario

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