S’il y a bien une chose que l’on doit souvent effectué dans un parc informatique, c’est l’entretien des imprimantes.
Changement de cartouches, de récupérateur de toner, de nettoyer, de filtre d’ozone, j’en passe.
Le problème dans tout çà, c’est que l’imprimante ne prévient pas avant de s’arrêter. Et là qui est ce qui mange ? C’est le serveur d’impression.
Rien qu’en 10 minutes d’intervention on va se retrouver avec une liste d’attente d’impression longue comme la liste des membres du personnel. Et pour couronner le tout, le serveur d’impression à placé en erreur le premier fichier de la liste, qui bien sur ne veux ni reprendre correctement son impression ni se laisser supprimer le la liste.

Le problème viens du fait que le spooler d’impression se plante magistralement au moment ou l’imprimante refuse subitement de traiter les données qu’il lui envoie.

La solution est simple vider le spooler d’impression puis supprimer le fichier erroné.Pour le vider trois solutions, l’interface graphique, la ligne de commande, ou le script… on testera l’interface graphique bien pratique si on est devant la machine, la ligne de commande car bien utile si çà arrive sur un poste et que l’on à pas le script sous la main, puis le script qui sera beaucoup plus pratique dans le cas ou l’on en a une utilisation répété.

Pour la ligne de commande, je ne détaille pas comment y accéder, parce que dire qu’il faut taper CMD dans le menu « exécuter » c’est du déjà vu.
Une fois arrivé sur notre prompt, c’est là qu’il faut éteindre puis rallumer le service qui gère le spooler. Rien de très compliquer « NET STOP SPOOLER », puis redémarrons le en tapant « NET START SPOOLER ». Ce qui nous donne si tout s’est bien passé…

A partir de là il suffit de supprimer les fichiers de la liste qui ont le statut en erreur et l’impression repart comme en 14 !

Passons à la méthode par l’interface graphique. Il faut accéder à la gestion des services de Windows.
 +R nous la fenêtre « exécuter » que nous complèterons à l’aide de cette commande :

Une fois arrivée à cette liste de services il suffit de sélectionner le service du spooler d’impression, accompagné d’un clic droit pour sélectionner l’option « redémarrer ».

Et la dernière solution est en fait l’automatisation de la solution 1, c’est-à-dire créer un script batch ou vbs nommé redémarrage spooler.

Pour le batch :

Fichier « redémarrage_spooler.bat » :
Net spooler stop
Net spooler start

Pour le VBS :

Fichier « redémarrage_spooler.VBS » :
strComputer = « . »
Set objWMIService = GetObject(« winmgmts: » & « {impersonationLevel=impersonate}!\\ » & strComputer & « \root\cimv2 »)

Set colInstalledPrinters = objWMIService.ExecQuery _
(« Select * from Win32_Printer Where Name = ‘Nom de l’imprimante‘ »)

For Each objPrinter in colInstalledPrinters
objPrinter.CancelAllJobs()
Next

Sources
Et voilà, après fini les problèmes de file d’impression. Il ne vous plus qu’a choisir votre méthode en fonction de vos besoins…