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.

126 Responses to “Conseguir hacer funcionar cualquier impresora en Terminal Server”

  1. Junior dice:

    necesito ayuda tengo una impresora hp m102w la tengo instalada en una portátil con windows 7 de 32bits, voy a l servidor windows 2003 64 bits y no tengo Driver para instalar la impresora que puedo hacer ???

Leave a Reply