Windows: скрипт для очистки очереди печати конкретного принтера.

Очистка очереди печати для всех принтеров выполняется довольно просто: стопается служба "Диспетчер печати", удаляются все файлы заданий печати, запускается служба "Диспетчер печати". (подробнее тут: Очистка очереди печати принтера.) Однако, если мы имеем терминальный сервер с кучей подключенных принтеров, а сбоит только один, то такой вариант решения не желателен, т.к. удаляются ВСЕ задания печати в том числе и нормальные. Ваш покорный слуга, не нашел способа очистить очередь печати через bat-скрипт, а вот powershell-модуль для работы с принтерами такое умеет. Ниже приведены примеры использования powershell для очистки очереди печати.

Обратите внимание чтобы очистить очередь печати у пользователя должны быть права на управление документами и управление принтером, иначе мы схватим ошибку "Отказано в доступе". По умолчанию эти права выдаются только администраторам, остальным -- только право на печать. Изменить права можно в свойствах принтера на вкладке "Безопасность".

Вариант 1. Очистка всей очереди печати для конкретного локального принтера. Запрашиваем список заданий печати и удаляем их.

Get-PrintJob -PrinterName "<имя принтера>" | Remove-PrintJob

имя принтера можно посмотреть в свойствах принтера или командой Get-Printer.

Вариант 2. Очистка всей очереди печати для конкретного принтера в локальной сети. Всё тоже самое что и в первом варианте, только добавляем ключ  -ComputerName и имя компа.

Get-PrintJob -ComputerName "<имя компа>" -PrinterName "<имя принтера>" | Remove-PrintJob

Вариант 3. Очистка ТОЛЬКО заданий печати с ошибками для конкретного принтера в локальной сети. Всё тоже самое что и во втором варианте, только между запросом заданий в очереди и удалением добавляем поиск заданий со статусом "Error".

Get-PrintJob -ComputerName "<имя компа>" -PrinterName "<имя принтера>" | Where-Object { $_.JobStatus -like 'Error*'} | Remove-PrintJob

Для удобства все эти команды можно запихнуть в текстовый файл с расширением .ps1 и запускать через ПКМ --> "Выполнить с помощью powershell".

Скачать заготовки скриптов можно отсюда.

Если нужно запускать скрипт с правами админа инструкция тут: Windows: Запуск файлов .ps1 от имени администратора через контекстное меню.

 
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 [0 Голоса (ов)]

Добавить комментарий