Tuesday, February 07, 2006

Problema con servicio Print Spooler


Primer articulo, un problema con el servicio Print Spooler del sistema operativo. Y bueno así se presento este problema, se encuentra detenido este servicio de un servidor, y este servicio se encarga de realizar todas las impresiones de la aplicación que se encuentra centralizada en un servidor.
Que raro. . . por el automáticamente los servicios del sistema operativo (Win 2000, XP y 2003), se re-inician 2 veces por defecto, y las siguientes intentos dejan de hacer acción alguna.

Primero seria saber el por que se quedo parado el servicio aun después de 2 re-inicios, así fue como en el event viewer, se encontró la razón del porque se encontraba corrompido alguno los archivos a imprimir. Entonces bloqueaba el print spooler de paraba, y bloqueaba todas las colas de impresión. En este caso era 1 cola de impresión en la cual estaba el problema, pero paraba mas de 10 colas de impresión, debido a la baja del print spooler.
Entonces la pregunta seria que hacer cuando se bloquean las colas de impresión?. Ahí fue como investigando se puede realizar esto de manera automática.
Para el sistema operativo Windows, hay un fólder en donde se depositan todos los archivos de documentos pendientes por imprimir este se encuentra en el directorio del sistema operativo, bajo el fólder spool. (Ejemplo: “c:\windows\System32\spool”). Estos archivos son lo que tienen la extensión *.spl y *.shd.
Excelente, ahora solo fue implementar el borrado de estos archivos en un batch file. Quedo de la siguiente manera:

NET STOP "print spooler"
c:
cd C:\WINDOWS\system32\spool\PRINTERS
del *.spl
del *.shd
NET START "print spooler"


Ahora solo fue decirle al servicio que cuando intente re-iniciar ejecute primero este batch file. Esto es en las propiedades del Print Spoooler, en el tab de Recovery, seleccionar en respuesta a la primer y segunda falla que ejecute un programa, después el programa a ejecutar seria el batch file. (Ejemplo: “ d:\batch\SPrint.bat”).

Después el problema quedo solucionado. . . .

9 comments:

Anonymous said...

que es un batch file y donde lo hago? en el MS DOS?? imagino q si ...

Miguel G. said...

Bueno, es algo tarde para una respuesta a este comentario pero un archivo batch es solo un archivo editable en block de notas y al guardalo se cambia la extensión ".txt" por ".bat".
Está muy bueno el tema me a servido de gran ayuda a la fecha de hoy, gracias, mil gracias. :)

Teodulo Ortega said...

Estas en lo correcto, me da gusto que te haya servido de algo!

Saludos!

Anonymous said...

Me apena decir esto, pero ya celebraba antes de haber corregido la falla. Pude lograr que .bat borrara los archivos ".spl" y ".shd" pero al intentar imprimir nuevamente no deja de presentar bajas en la cola de impresión, por más que se reinicie el servicio no funciona. :/

Teodulo Ortega said...

Este batch te ayuda a eliminar archivos corrompidos pendientes de imprimirse, antes que vuelvas a re-iniciar el print spooler. Por lo poco que comentas el problema que tienes es cuando mandas a imprimir algo nuevo de tu aplicacion. De donde estas imprimiendo?, es una aplicacion personalizada?, deberias buscar la causa raiz desde la aplicacion donde estas enviando la impresion, una buen inicio seria verificar el event viewer del sistema operativo, para ver que pistas te puede dar investigar la verdadera causa raiz. Saludos.

Anonymous said...

Gracias, lo tomar� en cuenta, luego te aviso como me fue.
La computadora con la falla es de un compa�ero de oficina y se est� imprimiendo desde M. Word, tambi�n he intentado de otros programas incluso la p�gina de prueba en propiedades de la impresora, cuando est� disponible me echo a investigar y gracias por el seguimiento!

Teodulo Ortega said...

Muy probablemente es el driver de la impresora, baja de nuevo el driver de su impresora e instalalo. De preferencia baja el driver de la impresora en PCL.

Espero esto solucione su problema.

Anonymous said...

Amigo Ortega, utilize la rutina que mencionas para borrar los archivos de impresion en XP, no funcionaba porque mencionas Net Stop "print spooler", pero si escribes Net Stop Spooler si detiene la impresion.
Muchas gracias por tu colaboracion

Anonymous said...

le agradesco mucho la solucion era el mejor dato que encontre y es con spooler