Скрипт для перезапуска заданий печати
#Определяем способ работы с потоками (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()
}
}
}
Интересное на сайте:
Голосов пока нет

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