Рассмотрим особенности очистки «подвисшей» очереди печати в системах Windows. Рассмотренная методика позволяет удалить из очереди документы, которые по какой-то причине не печатаются и мешают отправке на печать других файлов и документов.
«Мягкий» способ очистки текущей очереди печати принтера выполняется из окна Панели управления (Control Panel ->Devices and Printers). В списке принтеров нужно найти проблемный принтер, щелкнуть по нему ПКМ и выбрать в меню пункт See what’s printing.
В открывшемся окне управления очередью печати принтера в меню выбираем пункт Printer-> Cancel All Documents . Все документы, в том числе зависшие, должны удалиться из очереди печати принтера.
В том случае, если какие-то документы не удаляются из очереди печати, значит они в данный момент заблокированы системой или драйвером самого принтера. Они пропадут из очереди печати после перезагрузки. Если перезагрузка выполнить проблематично, можно принудительной удалить все задания из очереди службы печати Windows.
Важно. Приведенная ниже методика очистки очереди печати удаляет ВСЕ имеющиеся задания печати на ВСЕХ принтерах системы. Это нужно иметь в виду, особенно при очистке зависшей очереди печати на выделенном принт-сервере на базе Windows.
Напомним, что при отправке документа на печать на принтер, служба печати Windows (Print Spooler) формирует задание печати и создает два файла: один с расширением .SHD (содержит настройки задания печати), второй — .SPL (хранит собственно данные, которые нужно распечатать). Таким образом, задания печати будут доступны службе печати, даже после закрытия программы, инициировавшей печать. Данные файлы хранятся в каталоге спулера (по умолчанию, «%systemroot%\System32\spool\PRINTERS”). После успешной печати, эти файлы автоматически удаляются из этого каталога, и, соответственно, из очереди печати.
Нам нужно вручную очистить содержимое этой папки, тем самым мы удалим все задания в памяти Print Spooler.
Откройте командную строку с правами администратора и последовательно выполните команды:
net stop spooler
del %systemroot%\system32\spool\printers\*.shd /F /S /Q
del %systemroot%\system32\spool\printers\*.spl /F /S /Q
net start spooler
Этот набор команд последовательно останавливает службу печати Windows, рекурсивно удаляет все файлы с расширениями *.shd и *.spl из каталога %systemroot%\system32\spool\printers и запускает остановленную службу.
Архив с готовым bat файлом можно скать по ссылке reset_spooler.zip (запускать от имени администратора)
Примечание. В том случае, если скрипт не работает, проверьте, что в свойствах принт-сервера (Панель управления -> Devices and Printers -> кнопка Print Server Properties в верхнем меню -> вкладка Advanced -> в поле Spool folder location указан каталог C:\windows\system32\spool\Printers. В 99% случаев это должно быть так. Если путь к каталогу спулера отличается, нужно будет поправить путь к нему в скрипте.
Рассмотренные выше методики помогут очистить очередь печати в любой версии Windows, будь то Windows 7, 8 или Windows 10.
Распознавание голоса и речи на C#
UnmanagedCoder 05.05.2025
Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .
Реализация своих итераторов в C++
NullReferenced 05.05.2025
Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .
Разработка собственного фреймворка для тестирования в C#
UnmanagedCoder 04.05.2025
C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .
Распределенная трассировка в Java с помощью OpenTelemetry
Javaican 04.05.2025
Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .
Шаблоны обнаружения сервисов в Kubernetes
Mr. Docker 04.05.2025
Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .
Создаем SPA на C# и Blazor
stackOverflow 04.05.2025
Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .
Реализация шаблонов проектирования GoF на C++
NullReferenced 04.05.2025
«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .
C# и сети: Сокеты, gRPC и SignalR
UnmanagedCoder 04.05.2025
Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .
Создание микросервисов с Domain-Driven Design
ArchitectMsa 04.05.2025
Архитектура микросервисов за последние годы превратилась в мощный архитектурный подход, который позволяет разрабатывать гибкие, масштабируемые и устойчивые системы. А если добавить сюда ещё и. . .
Многопоточность в C++: Современные техники C++26
bytestream 04.05.2025
C++ долго жил по принципу «один поток — одна задача» — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал. . .
• spool (англ.) — подкачивать/откачивать данные;
• SPOOL — сокр. от Simultaneous Print Operations On Line — одновременная online-обработка заданий на печать;
• spooler (print spooler) — спулер, спулер печати — 1) диспетчер очереди печати — программа-планировщик, которая принимает документы, отправленные пользователем на печать, сохраняет их (на диске или в оперативной памяти) и отправляет в порядке очереди на выбранный принтер. Дисковый адрес Диспетчера очереди печати (Spooler SubSystem App) — \Windows\System32\spoolsv.exe; 2) подсистема печати получает, обрабатывает, выполняет диспетчеризацию и распределяет документы, направляемые на печать. Дисковый адрес Подсистемы печати (Spooler SubSystem DLL) — \Windows\System32\spoolss.dll;
• spool file — файл спулинга, спул-файл — файл, в который в процессе спулинга сбрасывается содержимое задания на печать;
• spooling — 1) спулинг (процесс обработки посылаемых на печать документов, которые сохраняются на диске или в ОЗУ до момента, когда печатающее устройство сможет их обработать); 2) подкачка (данных); откачка (данных) (одновременно с решением задачи);
• print spooling — вывод задания на печать с (предварительной) подкачкой;
• print queue — очередь заданий на печать (очередь печати) — список документов, ожидающих печати. Очередь печати (Windows Vista и XP) формируется в папке \Windows\system32\spool\PRINTERS;
• Буферизация печати — создание очереди печати, позволяет процессору компьютера ускорить обработку задания печати за счет его временного сохранения на жестком диске перед отправкой на принтер. В результате процессор может значительно быстрее вернуть управление программе, из которой выполняется печать, чем если бы обработка всего задания и отправка его непосредственно на принтер выполнялись самой программой.
Как отменить задание на печать
— XP: нажмите Пуск → Настройка → Принтеры и факсы (Vista: Пуск → Панель управления → Принтеры);
— в диалоговом окне Принтеры и факсы (Принтеры) двойным щелчком левой кнопки мыши откройте окно нужного принтера (или щелкните нужный принтер правой кнопкой мыши, из открывшегося контекстного меню выберите Открыть);
— в очереди печати щелкните правой кнопкой мыши элемент, печать которого требуется остановить, и выберите команду Отмена (для отмены всех заданий в меню Принтер выберите команду Очистить очередь печати).
Примечания
1. Если не удается отменить задание печати с помощью указанных действий, нажмите кнопку Отмена на самом принтере.
3. Чтобы быстро просмотреть список текущих заданий печати, дважды щелкните значок принтера в области уведомлений Панели задач (рядом с часами).
3. Пользователь может отменять только собственные задания печати. Для отмены задания печати другого пользователя необходимо иметь разрешение на управление документами на принтере.
Проблемы с отменой заданий на печать
Windows Vista и XP «не любят» отмену заданий на печать «на лету» (когда печать уже идет). В таких случаях очистить очередь печати зачастую удается не сразу, а до тех пор, пока вы не очистите очередь печати, следующее задание на печать выполняться не будет. Иногда отменить задание на печать удается только после перезагрузки (а иногда после перезагрузки задание на печать, которое мы уже вроде бы отменили, принтер начинает распечатывать).
В таких случаях можно попытаться вручную очистить папку очереди печати (\Windows\system32\spool\PRINTERS). Правда, удается это не всегда, т.к. эта папка имеет атрибуты Скрытая, Системная, Только для чтения, поэтому Windows не позволит вам особо «бесчинствовать» в этой папке.
Можно попытаться очистить очередь печати с помощью альтернативного файлового менеджера, например, Total Commander (в настройках должен быть установлен флажок Показывать скрытые и системные файлы).
Есть еще один — радикальный! — метод:
— завершите все задания печати;
— остановите спулер печати;
— создайте специальную папку для заданий очереди печати (например, C:\spool);
— укажите в настройках сервера печати (или через Реестр) ее месторасположение;
— запустите спулер печати;
— теперь при проблемах с отменой печати запустите Службы (или Диспетчер задач);
— выгрузите спулер печати spoolsv.exe;
— откройте папку C:\spool и удалите все временные файлы (каждое задание на печать, как правило, «оформляется» парой файлов спулинга — *.SPL, *.SHD, например, 00005. SHD и 00005. SPL (или FP00001. SPL и FP00001. SHD). У некоторых принтеров, в папке очереди печати, вдобавок к файлам *.SPL, *.SHD, создаются еще и файлы *.tmp);
— запустите спулер печати.
Как выгрузить (остановить) Диспетчер очереди печати (спулер печати)
— нажмите Пуск → Настройка → Панель управления → Администрирование → Службы (или Пуск → Выполнить… → в выпадающем списке Открыть диалогового окна Запуск программы введите services.msc → OK);
— в диалоговом окне Службы найдите Диспетчер очереди печати;
— щелкните Остановить службу.
Как запустить Диспетчер очереди печати
— нажмите Пуск → Настройка → Панель управления → Администрирование → Службы (или Пуск → Выполнить… → в выпадающем списке Открыть диалогового окна Запуск программы введите services.msc → OK);
— в диалоговом окне Службы найдите Диспетчер очереди печати;
— щелкните Запустить службу.
Как изменить расположение Папки очереди печати
Создайте на жестком диске папку, например, C:\spool;
1-й способ
1) Windows Vista:
— нажмите Пуск → Панель управления → Принтеры;
— откройте меню Файл → Свойства сервера…;
— в диалоговом окне Свойства: Сервер печати откройте вкладку Дополнительные параметры;
— в текстовое поле Папка очереди печати введите C:\spool (по умолчанию — C:\Windows\system32\spool\PRINTERS) → OK;
— в появившемся окне Свойства сервера печати санкционируйте изменение местоположения папки Диспетчера очереди печати, нажав Да.
2) Windows XP:
— нажмите Пуск → Настройка → Принтеры и факсы;
— в диалоговом окне Принтеры и факсы откройте меню Файл → Свойства сервера;
— в диалоговом окне Свойства: Сервер печати откройте вкладку Дополнительные параметры;
— в текстовое поле Папка очереди печати введите C:\spool (по умолчанию — C:\WINDOWS\System32\spool\PRINTERS) → OK;
— в появившемся окне Свойства сервера печати санкционируйте изменение местоположения папки Диспетчера очереди печати, нажав Да.
Внимание!
1. Изменение местоположения папки Диспетчера очереди печати вступают в силу немедленно, и все текущие документы не будут напечатаны. Рекомендуется дождаться завершения печати всех документов, прежде чем изменять местоположение папки Диспетчера очереди печати.
2. Папка очереди печати по умолчанию (если не задано иное!) применяется для всех принтеров, установленных в системе.
2-й способ
Ручное редактирование Реестра:
— нажмите Пуск → Выполнить… → в выпадающем списке Открыть диалогового окна Запуск программы введите regedit → OK;
— в диалоговом окне Редактор реестра найдите раздел [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers];
— измените значение REG_SZ-параметра на путь к папке, которую мы создали, например, C:\spool (значение по умолчанию — C:\WINDOWS\System32\spool\PRINTERS);
— закройте Редактор реестра.
Примечания
1. Для каждого установленного в системе принтера можно назначить свою папку очереди печати. Например, у вас установлен принтер HP LaserJet 1015. Найдите раздел
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\HP LaserJet 1015].
Измените значение строкового параметра SpoolDirectory на путь к папке, которую мы создали, например, C:\spool (значение по умолчанию не задано).
2. Если вы не можете запустить Диспетчер задач, см. Что делать, если появляется сообщение «Диспетчер задач отключен администратором»?
3. Если пункт меню Свойства папки недоступен, см. Что делать, если недоступен пункт меню «Свойства папки»?
4. Если вы не можете запустить Редактор реестра Windows, см. Что делать, если появляется сообщение «Редактирование реестра запрещено»?
5. При работе с Редактором реестра Windows следует соблюдать осторожность, а то можно такого наредактировать, что придется переустанавливать операционную систему!..
6. Подсистему печати могут отключить вирусы — см. Windows: что делать, если вирусы отключили подсистему печати?
7. Если не удается отобразить скрытые файлы и папки, см. Windows: что делать, если не удается отобразить скрытые файлы и папки?
Выберите вариант загрузки:
- скачать с сервера SoftPortal (zip-архив)
- скачать с официального сайта (zip-архив)
Небольшая бесплатная портативная утилита, которая позволяет буквально в несколько кликов очистить очередь печати, папку «%systemroot%\System32\spool\printers\», и затем перезапустить службу Spooler. Программа имеет поддержку командной строки (полное описание…)
Рекомендуем популярное
MapKeyboard 2.1
MapKeyboard — небольшая бесплатная утилита с помощью которой можно легко переназначить или…
RegScanner 2.75
RegScanner — небольшая бесплатная утилита, которая в соответствии с заданными критериями…
Process Lasso 15.0.4.22
Process Lasso — Небольшая утилита для операционных систем Windows, которая позволяет вручную или…
Если на принт-сервере Windows подключено большое количество сетевых принтеров, вы можете периодически сталкиваться с зависанием очередей печати. Застрявшее в очереди печати задание мешает отправки на печать других документов. В этом случае нужно попробовать удаления застрявшее задание или полностью очистить очередь печати.
Удаление зависшего задания из очереди печати принтера
В первую очередь попробуйте выполнить мягкую очистку очереди печати с помощью консоли Print Management (printmanagement.msc). Разверните секцию All Printers -> Щелкните по вашему принтеру и выберите Open Printer Queue.
Найдите зависшее задание в списке заданий печати и отмените его (Cancel).
Если это не помогло, полностью очистите очередь печати из меню управления заданиями принтера (Printer -> Cancel all documents).
Обязательно проверьте, что в меню управления очередь печати не включены опции Pause Printing или Use Printer Offline.
В первую очередь проверьте, что в меню управлению очередью печати Windows не включены опции Pause Printing и Use Printer Offline. Отключите их.
Если мягкая очистка не помогла, и вы не можете перезагрузить сервер печати прямо сейчас, можно попробовать вручную удалить задания печати на диске.
Когда служба Windows (Print Spooler) получает документ, она создает в каталоге %systemroot%\System32\spool\PRINTERS два файла: один с расширением .shd (содержит настройки задания печати), второй .spl (содержит сырые данные, которые нужно распечатать). После успешной печати, эти файлы автоматически удаляются как из этого каталога, так и из очереди печати.
Если открыть SHD файл с помощью блокнота, можно определить имя документа, принтер и пользователя, который отправил это задание на печать.
Вы можете удалить зависшее задание печати из очереди, вручную удалив SHD и SPL файл задания. Для этого нужно сначала остановить службу печати (консоль services.msc -> служба Print Spooler -> Stop).
После этого удалите файлы задания с диска и запустите службу печати. Откройте окно управления очередь печати и проверьте, что зависшее задание было удалено.
Принудительная очистка очереди печати в Windows
Если предыдущий способ не помог, вы можете полностью очистить очередь печати на сервере, но при этом будут удалены все (!!!) задания печати в очередях всех принтеров.
Для этого откройте командную строку с правами администратора и по очереди выполните следующие команды:
net stop spooler
del %systemroot%\system32\spool\printers\*.shd /F /S /Q
del %systemroot%\system32\spool\printers\*.spl /F /S /Q
net start spooler
Если вам больше нравится PowerShell, вы можете очистить очередь печати таким скриптом:
Get-Service *spool* | Stop-Service -Force -Verbose
Start-Sleep -Seconds 5
$path = $env:SystemRoot + "\system32\spool\printers\"
Get-ChildItem $path -File | Remove-Item -Force -Verbose
Get-Service Spooler | Start-Service -Verbose
Если у вас в очередях печати копятся старые документы, вы можете периодически удалять их из очереди. Например, следующий скрипт удаляет из очередей печати все документы, старше 2 дней.
Get-Printer | get-printjob | where{$_.SubmittedTime -lt ((Get-Date).adddays(-2))} | Remove-PrintJob
