Windows: Eliminar trabajos de impresión con PowerShell

En un post anterior vimos como eliminar todos los trabajos de la cola de impresión:

Windows: Eliminar trabajos cola impresión (SYSADMIT.com)

A partir de PowerShell 3.0 incluida en Windows Server 2012 y Windows 8 es posible administrar los trabajos de impresión utilizando cmd-lets.

De esta forma podremos eliminar de forma selectiva trabajos en las colas de impresión de las impresoras.

Veamos tres ejemplos de uso:


1) Eliminar todos los trabajos de todas las impresoras cuyo estado de la impresora no sea: "Normal".



Get-Printer | where {$_.PrinterStatus -ne "Normal"} | Get-Printjob |Remove-PrintJob

Funcionamiento:

- Get-Printer: Después de su ejecución podemos ver la información de las impresoras como: nombre, puerto, driver utilizado, estado de la impresora, etc..

- where {$_.PrinterStatus -ne "Normal"}: Filtramos el estado de la impresora a algo distinto a: "Normal", por ejemplo, se mostrarán las impresoras que están pausadas. El operador -ne, significa: "Not equal"

- Get-Printjob: Obtenemos la lista de trabajos de las impresoras obtenidas tras la ejecución de Get-Printer.

- Remove-PrintJob: Eliminamos todos los trabajos de la cola de impresión. La lista de trabajos se obtiene tras la ejecución de: Get-Printjob


2) Eliminar todos los trabajos de todas las impresoras cuyo estado del trabajo de impresión sea: "Error".



Get-Printer | Get-PrintJob | where {$_.JobStatus -match "Error"} | Remove-PrintJob

Funcionamiento:
- Get-Printer: Igual que en el ejemplo anterior.
Get-PrintJob: Igual que en el ejemplo anterior.
where {$_.JobStatus -match "Error"}: Filtramos los jobs de impresión. Solo mostramos aquellos jobs con estado de "Error".

- Remove-PrintJob: Igual que en el ejemplo anterior.


3) Eliminar todos los jobs de impresión de todas las impresoras del servidor de impresión: PRINTSRV1



Get-Printer -ComputerName PRINTSRV1| Get-PrintJob | Remove-PrintJob

No hay comentarios:

Publicar un comentario