Tired of deleting all the print jobs spreaded in multiple windows servers in farm… baked a powershell script to deleting jobs older than one day remotely..
👍😘
$servers = "test123","test456"
foreach ($server in $servers) {
$result = @()
$documenti = @()
$session = new-pssession -computername $server -credential $cred
$scriptblock = {
$docs = @()
$printers = (Get-Printer).name
foreach ($printer in $printers) {
$jobs = get-printjob -PrinterName $printer | Where-Object submittedtime -le $((get-date).adddays(-1))
$jobs | Remove-PrintJob -Confirm:$false
if ($null -ne $jobs) {
$docs += $jobs
}
}
return $docs
}
$result = Invoke-Command -session $session -ScriptBlock $scriptblock
if ($null -ne $result ) {
$documenti += $result
foreach ($documento in $documenti) {
write-host "Cancellato da spool stampa documento: '$($documento.documentname)' - stampante: '$($documento.PrinterName)' - generato il: '$(($documento.SubmittedTime).ToString("dd/MM/yyyy HH:mm:ss"))' - server: '$($documento.PSComputerName)'"
}
}
}
get-pssession | Remove-PSSession -Confirm:$false