Скрипт для перезапуска заданий печати

#Определяем способ работы с потоками (threads)
$host.Runspace.ThreadOptions = "ReuseThread"
#Подключаем сборку System.Printing
Add-Type -AssemblyName System.Printing
#Создаем объект PrintServer (для локального компьютера)
$PrintServer = new-object System.Printing.PrintServer
#Получаем перечень очередей печати (PrintQueues)
$PrintQueues = $PrintServer.GetPrintQueues()
#Для каждой очереди печати...
foreach ($PrnQueue in $PrintQueues) {
 #...обновим свойства объекта PrnQueue значениями, полученными от принтера
 #и утилит очередей печати, запущенных на компьютере
$PrnQueue.Refresh()
 #Получаем перечень заданий печати для текущей Очереди печати
$PrintJobs=$PrnQueue.GetPrintJobInfoCollection()
#Для каждого задания печати...
foreach ($PrnJob in $PrintJobs) {
#...проверяем статус задания
if ($PrnJob.JobStatus.ToString() -like "*error*") {
#если статус задания, содержит слово error, то перезапускаем задание.
$PrnJob.Restart()
      }
    }
}

Также интересно:

Интересное на сайте: 
0
Голосов пока нет

Оставить комментарий