Spoolsv.exe
Spoolsv.exe — это исполняемый файл диспетчера очереди печати (Print Spooler) операционной системы Microsoft Windows. Он представляет собой службу, отвечающую за управление процессом печати: получение заданий от приложений, их временное хранение на жёстком диске (в папке %SystemRoot%\System32\spool\PRINTERS) и последующую передачу на принтер. Является критически важным компонентом для работы с любыми локальными и сетевыми принтерами в среде Windows.
Назначение и функции
Основная задача spoolsv.exe — обеспечить асинхронную печать. Когда пользователь отправляет документ на печать, приложение (например, текстовый редактор или графический редактор) не ожидает завершения физической печати. Вместо этого оно передаёт задание службе диспетчера очереди печати, которая сохраняет его в виде временного файла (спула) и ставит в очередь. После этого приложение может продолжить работу, а служба в фоновом режиме передаёт данные на принтер.
Ключевые функции spoolsv.exe:
- Приём заданий на печать от всех приложений, работающих в системе.
- Сохранение заданий в виде файлов спула (
.spl) и файлов теней (.shd), содержащих метаданные о задании (имя документа, владелец, приоритет, параметры печати). - Управление очередью — сортировка заданий по приоритету и времени поступления, приостановка, возобновление и удаление заданий.
- Передача данных на принтер через соответствующий драйвер, обеспечивая совместимость формата данных с конкретной моделью устройства.
- Обработка ошибок печати (например, отсутствие бумаги, замятие, отключение принтера) и уведомление пользователя или администратора.
Расположение и запуск
Исполняемый файл spoolsv.exe находится в системной папке C:\Windows\System32. В 64-разрядных версиях Windows также существует 32-разрядная версия, расположенная в C:\Windows\SysWOW64, которая используется для совместимости со старыми драйверами принтеров.
Служба запускается автоматически при старте операционной системы и работает в фоновом режиме от имени учётной записи SYSTEM (локальная система). Процесс spoolsv.exe обычно отображается в диспетчере задач как «Диспетчер печати» (или «Print Spooler» в английской версии). Остановка службы приводит к невозможности печати, а также к потере заданий, находящихся в очереди.
История и развитие
Служба диспетчера очереди печати появилась в ранних версиях Windows (Windows 95 и Windows NT) и с тех пор претерпела несколько значительных изменений:
- Windows 95/98/Me: Служба была реализована как часть графической оболочки и не имела отдельного процесса. Очередь печати управлялась через системный реестр.
- Windows NT 4.0/2000: Служба стала отдельным процессом (
spoolsv.exe), работающим в пространстве ядра. Это повысило стабильность системы — сбой драйвера принтера не приводил к краху всей ОС. - Windows XP/Vista/7: Добавлена поддержка новых протоколов печати (Internet Printing Protocol — IPP, Web Services for Devices — WSD). Улучшена обработка ошибок и интерфейс управления очередью.
- Windows 8/10/11: Внедрена изоляция драйверов принтеров (Print Driver Isolation), позволяющая запускать драйверы в отдельных процессах, что повышает безопасность и стабильность. Также добавлена поддержка печати через облачные сервисы (Microsoft Universal Print).
Уязвимости и проблемы безопасности
За свою историю spoolsv.exe был источником нескольких критических уязвимостей, наиболее известной из которых является PrintNightmare (CVE-2021-34527). Эта уязвимость, обнаруженная в 2021 году, позволяла злоумышленнику выполнить произвольный код с правами системы через службу диспетчера печати, в том числе удалённо. Microsoft выпустила серию обновлений безопасности для устранения этой проблемы, а также рекомендовала администраторам отключать службу на серверах, где печать не требуется.
Другие известные уязвимости:
- CVE-2010-2729: Удалённое выполнение кода через некорректную обработку запросов RPC.
- CVE-2022-21999: Уязвимость повышения привилегий, связанная с неправильным управлением правами доступа к файлам спула.
В связи с этими угрозами, начиная с Windows 10 версии 21H2 и Windows Server 2022, по умолчанию включены дополнительные механизмы защиты, такие как проверка подписей драйверов и ограничение на выполнение точек входа.
Диагностика неисправностей
Проблемы с работой spoolsv.exe проявляются в виде ошибок печати, зависаний очереди, сообщений «Не удалось завершить операцию» или «Служба диспетчера печати не запущена». Типичные причины неисправностей:
- Повреждённые файлы спула: Некорректное завершение задания может привести к зависанию очереди. Решение — остановка службы, удаление всех файлов из папки
%SystemRoot%\System32\spool\PRINTERSи перезапуск службы. - Конфликт драйверов (особенно после обновления ОС или установки нового принтера).
- Вредоносное ПО: Некоторые вирусы маскируются под
spoolsv.exeили повреждают его. Проверка подлинности файла (размер, цифровая подпись Microsoft) обязательна. - Недостаток прав: Служба должна работать от имени
SYSTEM. Изменение учётной записи через оснасткуservices.mscможет нарушить её работу.
Вредоносные копии
Злоумышленники часто используют названия системных процессов для маскировки вредоносного ПО. Поддельный spoolsv.exe может располагаться в нестандартной папке (например, C:\Users\Имя\AppData\Local\Temp\spoolsv.exe) или иметь отличающийся размер и отсутствие цифровой подписи Microsoft. Признаки заражения:
- Высокая загрузка процессора или памяти процессом
spoolsv.exe. - Наличие нескольких процессов с одинаковым именем.
- Попытки процесса установить сетевое соединение (легитимный
spoolsv.exeне должен инициировать исходящие соединения без явной команды пользователя).
Для проверки рекомендуется использовать диспетчер задач, утилиту Process Explorer (от Microsoft) или антивирусное сканирование.
Отключение службы
В некоторых сценариях (например, на серверах, не имеющих физических или сетевых принтеров, или в целях повышения безопасности) администраторы отключают службу диспетчера печати. Это делается через оснастку services.msc (установка типа запуска «Отключена») или через PowerShell командой Stop-Service Spooler -Force; Set-Service Spooler -StartupType Disabled. После отключения службы любые попытки печати будут завершаться ошибкой.
Источники
- Microsoft Docs: «Print Spooler architecture and components» (документация по архитектуре диспетчера печати Windows).
- CVE-2021-34527 (PrintNightmare) — Национальная база данных уязвимостей NVD (National Vulnerability Database).
- Windows Internals, 7th Edition — Pavel Yosifovich, Mark Russinovich, David Solomon, Alex Ionescu.
- TechNet Magazine: «Troubleshooting Print Spooler Issues» (статья по устранению неполадок диспетчера печати).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →