Si bien el componente de Terminal Server, para Windows 2000 Server o Windows Server 2003 es una excelente herramienta, puede darnos mas de un dolor de cabeza a la hora de imprimir. Veamos como funciona la impresión en entornos Terminal Server y la resolución a los problemas más comunes.
Como funciona?
En un escenario típico tendríamos un Server y un Cliente, cuando el cliente RDP se conecta al Server, al iniciarse la sesión, prepara el entorno del usuario, variables, etc y además el Server vía canales RDP descubre las impresoras que el cliente tiene configuradas en su sistema.
A través de la información de modelo y tipo de impresora, el Server intenta crear en la sesión de Terminal del usuario una Impresora similar utilizando el mismo driver y luego vincularla con la impresora descubierta en el cliente.
A simple vista parece simple pero hay detalles a tener en cuenta
Caso particular es que el driver de la impresora cliente, no este instalado en el Server, con lo cual debemos instalarlo y tener en cuenta que para que esto funcione correctamente una de las reglas es que el nombre del driver en el cliente y en el Server deben ser "iguales" y en el caso de que el nombre de driver en el cliente y Server sean distintos fallara la creación de la impresora en la sesión del usuario y no podrá imprimir
Esto lo podemos ver en el visor de eventos con el ID
Error 1111 Driver <drivername> required for printer <printertype> is unknown. Contact the administrator to install the driver before you log in again.
Error 1105 Printer security information for the printername>/<clientcomputername>/Session <number> could not be set.
Error 1106 The printer could not be installed.
Los problemas comunes y sus soluciones
Si el driver de la impresora cliente no esta instalado en el Server
Debemos buscar una versión para Windows Server 2003 o 2000 e instalarlo.
La instalación se debe hacer desde, panel de control, impresoras, ir al menú archivo, propiedades del Server, y en la ficha controladores. Ahí debemos agregar el driver de la impresora.
Para asegurarnos la compatibilidad en nuestros servidores debemos tomar en cuenta que existen dos versiones de drives de impresión
Modo Kernel
Son driver que están diseñados para Windows NT 4.0 y que pueden producir caídas en el Server tipo "blue screen", obviamente hay que tratar de evitarlos
Codigo de las caidas concidas por este tipo de drivers
• 0xC9 - DRIVER_VERIFIER_IOMANAGER_VIOLATION
Modo Usuario
Son driver diseñados para Windows 2000 y 2003 y garantiza que en caso que falle solo fallara el servicio de impresión y no el sistema completo.
Para identificar el driver, existe una ficha en las propiedades del driver donde se ve si es versión 2 (Kernel o Compatible con Windows NT 4.0 o 2000) o versión 3 (usuario o Solo WIndows 2000 o 2003) y También por la ruta de instalación del mismo,
Modo usuario %systemroot%\system32\spool\drivers\w32x86\3
Modo Kernel %systemroot%\system32\spool\drivers\w32x86\2

Uso de la politica Terminal Server fallback printer driver behavior
Con el SP1 para Windows Server 2003, viene una mejora para entornos Terminal Server, en donde permiten manejar una nueva característica de del SP1 la cual es de usar un driver genérico para entornos de Terminal Server.
Esto serviría en el caso que el cliente RDP al conectarse al Terminal Server, y no pudiera crearse la impresora por falta del driver, el Windows Server 2003 creara la impresora un un driver universal compatible con PostScript (PS) o Printer Control Language (PCL).
Por defecto esta politica viene deshabilitada y al habilitarla podemos configurar
Do nothing if one is not found.
No hacer nada si no se encuentra el driver, es el comportamiento por defecto en el Terminal Server
Default to PCL if one is not found.
Si no se encuentra el driver en el Server, el Terminal Server usara un "fallback printer driver" Hewlett-Packard compatible con Printer Control Language (PCL)
Default to PS if one is not found.
Si no se encuentra el driver en el Server, el Terminal Server usara un Adobe PostScript (PS) fallback printer driver.
Show both PCL and PS if one is not found.
Si no se encuentra el driver en el Server, el Terminal Server mostrara ambos PS- y PCL fallback printer drivers
Los driver utilizados por fallback printer drivers son
"HP DeskJet 500"
"HP DeskJet 500C"
"HP LaserJet 4/4M PS"
"HP Color LaserJet 5/5M PS"
Y si queremos que use alguno en particular de estos 4, debemos usar el siguiente registry, en realidad es conveniente usar estos dos como preferidos.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd
"FallbackPclDriver"="HP DeskJet 550C"
"FallbackPsDriver"="HP Color LaserJet 5/5M PS"
Uso de Driver universal
En algunos casos en uso de una solución de driver universal tiene sus costos por que son soluciones de terceros, pero también investigando un poco hay una solución free de HP
HP Universal Driver for Windows
Otros drivers universales de terceros con costos.
http://www.citrix.com
http://www.uniprint.net/
http://www.thinprint.com/
Uso del NTPRINT.INF para mapear "PrinterMapping" driver de impresión
Es un archivo de texto ubicado en %windir%\inf\ y que permite manejar el mapeo de los driver en la autocreación de las impresoras en la sesión de Terminal, ahí podremos manejar de forma manual el mapeo de los driver de las impresoras
Si, Son cursos introductorios a las nuevas caracteristicas de Citrix XenDesktop 5.5 y Citrix XenApp 6.5, GRATIS,, solo h…
Esta disponible le Beta del Examen1y1-A20 Citrix XenApp 6.5 Administration para la certificación de CCA para XenAp…
Despues de dar el cansador examen beta 1y1-a20, ahora Citrix libera en beta el siguiente examen para XenApp 6.5 de Admin…
En la nueva versión de XenApp 6.5 existe una nueva opción para la configuración del servidor llamada session-host only q…
Les dejo una lista de Script para Hyper-V que les puede ayudar a tener informacion de los ambientes de las maquinas virt…
Les comparto un script creado por Nahuel Villar en PowerShell para crear un reporte en excel sobre los tipos de discos e…