Чистка кэша диспетчера очереди печати принтера (Print Spooler) в Windows
Механизм подсистемы печати и зависание очереди
Диспетчер очереди печати (Print Spooler) — это системная служба (spoolsv.exe), которая управляет процессом отправки документов на принтеры. Когда пользователь нажимает «Печать», Windows не отправляет данные в принтер напрямую. Она сначала рендерит документ (Spooling) и сохраняет его в виде временных файлов в системный кэш (папка PRINTERS). Если принтер выключен, бумага замялась, или драйвер сбойнул, эти файлы накапливаются. В результате очередь «зависает»: документы не печатаются, удалить их через интерфейс невозможно, а процесс spoolsv.exe может начать потреблять 100% процессора. Бизнес-риски: парализация документооборота в офисе или на складе.
Симптоматика зависшего кэша
| Проявление | Причина | Техническое последствие |
|---|---|---|
| Документ висит со статусом "Удаление" (Deleting) | Файл заблокирован процессом spoolsv.exe | Невозможно распечатать следующие документы. |
| spoolsv.exe грузит ЦП | Поврежден файл .SPL (бесконечный цикл чтения) | Тормозит весь сервер печати (Print Server). |
| Ошибка 'Подсистема печати недоступна' | Служба упала в Crash из-за битого драйвера | Все принтеры исчезают из системы. |
Пошаговый алгоритм жесткой очистки очереди печати
Сценарий 1: Ручная очистка файлов кэша (CMD)
Графический интерфейс не поможет удалить заблокированные файлы. Требуется командная строка от имени Администратора.
1. Жесткая остановка диспетчера печати
net stop spooler
2. Удаление всех временных файлов заданий (очистка кэша)
del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"
3. Запуск диспетчера печати
net start spoolerСценарий 2: Создание скрипта (BAT-файла) для пользователей
Чтобы не делать это каждый раз руками, создайте на рабочем столе файл Clear_Print.bat (Требуется запуск от имени Администратора).
@echo off
echo Остановка службы печати...
net stop spooler
echo Очистка зависших документов...
del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"
echo Запуск службы печати...
net start spooler
echo Очередь очищена!
pauseТиповые ошибки администраторов
- Удаление папки PRINTERS целиком: Удалять нужно содержимое папки (файлы .SPL и .SHD), а не саму директорию. Если удалить саму папку
Printers, служба spooler может не запуститься (сбой прав доступа NTFS). - Переустановка драйверов при зависшей очереди: Бесполезно удалять и переустанавливать драйверы принтера, если в кэше висит битый файл. Сначала — очистка папки
Spool, затем всё остальное.
Проблема 100% связана с архитектурой драйверов. Пробрасывание принтеров (Easy Print) часто вызывает крах пула печати (Print Isolation Host). Инженеры ITSTM настроят отказоустойчивые выделенные серверы печати (Print Servers) и избавят вас от зоопарка драйверов на терминалах.
Частые вопросы (FAQ)
Что это за файлы с расширением .SPL и .SHD?
.SPL (Spool File) — это сам документ (графика, текст) в отрендеренном виде (EMF или RAW), готовый для отправки в принтер. .SHD (Shadow File) — это файл метаданных: кто отправил, имя принтера, количество копий. Удалять нужно оба.
Почему при попытке удалить файлы пишет 'Файл занят другим процессом'?
Потому что вы не остановили службу диспетчера печати. Выполните 'net stop spooler' в командной строке перед тем, как заходить в папку C:\Windows\System32\Spool\Printers.
Можно ли перенести папку Printers на другой диск?
Да, для высоконагруженных принт-серверов это обязательно. В Свойствах сервера печати (printui /s) -> Дополнительные параметры, измените путь 'Папка очереди печати' на более быстрый диск (например, D:\Spool).
Служба spooler не запускается после очистки (Ошибка 1068). Что делать?
Ошибка 1068 (не удалось запустить дочернюю службу). Spooler зависит от службы RPC (Удаленный вызов процедур) и HTTP-служб (если включен IPP). Проверьте в services.msc, запущены ли эти службы. Также убедитесь, что папка Printers существует.