Los usuarios no pueden imprimir después de instalar un service pack, un paquete acumulativo de actualizaciones o una revisión de impresora en un servidor basado en Windows.

En este artículo se proporciona ayuda para resolver un problema en el que no se puede imprimir después de instalar un Service Pack o una revisión de impresora en un servidor.

Se aplica a: Windows Server 2012 R2
Número de KB original: 832219

Síntomas

Después de instalar un service pack, un paquete acumulativo de actualizaciones o una revisión que actualiza el archivo Unidrvui.dll en Windows Server, los usuarios pueden experimentar los dos síntomas siguientes:

  • Cuando un cliente o servidor intenta imprimir, el servicio de cola de impresión parece dejar de responder (o "bloquear") y aparece el siguiente mensaje de error:

    No se puede crear un trabajo de impresión.

  • Al intentar imprimir una página de prueba desde la consola del servidor, recibe el siguiente mensaje de error:

    No se pudo imprimir la página de prueba.

  • Los asistentes Agregar controlador o Agregar impresora dejan de responder, ya sea cuando intenta instalar el controlador mediante Dispositivos e impresoras, o bien mediante la Consola de administración de impresión.

Causa

Este comportamiento puede producirse si instala el service pack o el paquete de revisiones en un servidor que tiene muchos controladores de impresora del Lenguaje de control de impresora (PCL) basados en Unidrv.

Al instalar un service pack o un archivo de revisión que actualiza Unidrvui.dll en un servidor con muchos controladores de impresora PCL basados en Unidrv, el servidor puede dedicar mucho tiempo (hasta 2 horas) a regenerar los archivos de descripción de impresora binarios analizados (archivos .bud) que se usan para aumentar la eficacia de la cola de estos controladores. Durante este tiempo, la cola de impresión no puede recibir trabajos de impresión entrantes y puede devolver mensajes a los clientes que indican que la cola de impresión está llena. Se trata de una operación de análisis única y no se produce después de que los archivos binarios .bud analizados se vuelvan a generar correctamente.

Los archivos binarios .bud generados a partir de archivos genéricos de descripción de impresora (GPD) se deben regenerar porque se cambia la versión del archivo del analizador GPD. Una vez analizados todos los controladores PCL basados en Unidrv, la cola puede recibir de nuevo trabajos de impresión. Por este motivo, Microsoft recomienda programar instalaciones de service pack y revisiones en servidores con muchos controladores de impresora PCL basados en Unidrv para adaptarse a esta compilación de archivos .bud de hasta dos horas.

Solución

Para resolver este problema, programe el tiempo suficiente para que el servidor complete el análisis de todos los controladores de impresora basados en Unidrv para cada archivo de controlador actualizado y, a continuación, programe el tiempo suficiente para cada impresora que use estos archivos.

Solución alternativa

Importante

Esta sección, método o tarea contiene pasos que le indican cómo modificar el Registro. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. En consecuencia, asegúrese de seguir estos pasos cuidadosamente. Para mayor protección, cree una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información sobre cómo hacer una copia de seguridad del Registro y cómo restaurarlo, consulte Cómo realizar una copia de seguridad del Registro y restaurarlo en Windows.

Si no puede esperar a que el servidor complete el análisis de todos los controladores de impresora basados en Unidrv, quite manualmente todos los archivos de descripción de impresora binarios almacenados en caché (archivos .bud) y, a continuación, deje que se vuelvan a crear automáticamente. En función de la velocidad del servidor, esta re-creación automática puede completarse en un tiempo más corto. Normalmente, esta operación se completa en un plazo de 30 minutos.

Nota:

Cuando se inicia Print Spooler, instala una versión más reciente de Unidrv.dll. Como resultado, los archivos .bud están obsoletos. Los archivos .bud son las versiones compiladas de archivos .ppd y se pueden regenerar completamente a partir de esos archivos .ppd. Por este motivo, puede quitar los archivos .bud.

Para ello, siga estos pasos:

  1. Detenga el servicio Print Spooler. Para ello, ejecute el siguiente comando desde un símbolo del sistema:

    net stop spooler
    
  2. Busque todos los archivos .bud y, a continuación, asegúrese de que están marcados con la hora y la fecha actuales. Los archivos aparecen con la fecha de hoy.

  3. Quite todos los archivos .bud que tengan una marca de fecha y hora anterior a la fecha de hoy. Estos archivos se encuentran en la carpeta siguiente:

    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3

  4. Quite la siguiente clave del Registro si existe:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    Para ello, siga estos pasos:

    1. Haga clic en Inicio, Ejecutar, escriba regedit en el cuadro Abrir y, después, haga clic en Aceptar.

    2. Busque y, a continuación, haga clic en la siguiente subclave del Registro:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

    3. En el menú Registro, haga clic en Exportar archivo del Registro.

    4. En el cuadro Nombre de archivo , escriba printkey y, a continuación, haga clic en Guardar.

      Nota:

      Si más adelante tiene que restaurar la clave del Registro de impresión , puede hacerlo haciendo doble clic en el archivo Printkey.reg que guardó.

    5. Busque y, a continuación, haga clic en la siguiente subclave del Registro si existe:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    6. En el menú Editar , haga clic en Eliminary, a continuación, haga clic en para confirmar la eliminación de la clave del Registro PostSPUpgrade .

      Nota:

      La clave del Registro PostSPUpgrade puede volver a aparecer después de reiniciar el equipo. Este comportamiento se produce si existen otros archivos .bud que aún no se han analizado. Una vez analizados estos archivos, esta clave del Registro se quita automáticamente.

  5. Reinicie el servidor.

Después de reiniciar el servidor, la funcionalidad de impresión está disponible para los usuarios después de unos 30 minutos.

Más información

En .NET Framework 3.0, el archivo unidrv.dll ahora se incluye con la impresión XPS. El archivo unidrv.dll también puede desencadenar este comportamiento.