Отправляя задание на печать, пользователь всегда ожидает, что данное действие пройдет без сбоев. Но так бывает не всегда — вместо привычного жужжания печатающего принтера на экран компьютера «выползает» неожиданное извещение: «Подсистема печати недоступна». Какова причина появления этого предупреждения и, каковы возможные способы устранения этой неполадки? Давайте разберемся.
Содержание статьи
- Принцип работы подсистемы печати
- Восстановление системных файлов ОС
- Диспетчер очереди и диагностика принтера
- Используем стандартные средства Windows
- Бесплатная FixIt
- PrinterDiagnostic от Microsoft
Такого вида сообщение вы увидите при возникновении проблем с подсистемой «семерки», предназначенной для распечатывания материалов.
Так, эта ошибка выглядела в Windows XP:
Как работает подсистема печати?
В процедуре печатания документа выделяют ряд шагов, представляющих коллекции процессов отдельных компонентов подсистемы.
- Клиентские процессы;
- Процессы спулера;
- Процессы принтера.
Нас интересуют первые две коллекции процессов, так как обсуждаемая ошибка не относится к уровню принтера.
На сайте Майкрософт приведена следующая схема работы рассматриваемой системы:
Когда пользователь, сформировав задание, отправляет его на обработку, графическое приложение вызывает функции низкоуровневой библиотеки GDI.
Эта библиотека отвечает за правильное отображение графических элементов документа. GDI, в свою очередь, делает вызов процедур драйвера принтера, который должен распечатать документ.
Эта библиотека не используется, если процесс инициирован WPF-приложением — тогда инициируется XPS-печать.
В обоих случаях дальнейшая обработка задания передается клиентской части спулера печати. Этот диспетчер — многокомпонентная система клиент-серверной архитектуры.
Роль клиента выполняет драйвер winspool.drv. Именно сюда отправляется задание пользователя.
Функции драйвера посредством механизма вызова удаленных процедур (RPC) задействуют в процессе обработки задания серверную часть spoolsv.exe, которая в свою очередь обращается к локальному маршрутизатору печати, а тот в свою очередь подключает к работе другие сервисы.
Вполне очевидно, что проблема недоступного диспетчера возникает, когда происходит передача задания на клиентский уровень спулера или же при обращении клиентского драйвера к серверной части — к службе Диспетчера очереди печати, которую система по какой-то причине не запустила или не может запустить.
Вероятными могут оказаться сбои в службе вызова удаленных процедур RPC.
Восстановим системные файлы
Мы определили возможный уровень происхождения ошибки. Как видим, она появляется на уровне системных файлов и служб. Скажем также, что данная ошибка часто возникает по причине вмешательства некоторых приложений в нормальную работу подсистемы печати. Поэтому природа появления этой ошибки, прежде всего, программная.
Важно!!! Нельзя исключать пагубного влияния вирусов, изменяющих названия системных файлов, внедряющих собственные процедуры в выполняющиеся процессы. Поэтому есть смысл проверить компьютер на наличие заражения.
На следующем шаге нужно восстановить системные файлы, для чего стоит воспользоваться специальной утилитой sfc. Она работает из-под командной строки, восстанавливая удаленные файлы системы и их целостность. Ниже на изображениях представлен способ запуска этой утилиты.
Сначала найдем Стандартные программы в меню Пуск
Нам нужно запустить командную строку
Как видим, утилита sfc умеет проверять целостность системных файлов и восстанавливать их. Для этого нужно запустить ее с командой scannow.
Утилита sfc завершила проверку:
Запустим Диспетчер очереди и продиагностируем принтер
Пытаясь устранить возникшую неполадку, пользователь может обратиться также к панели служб, чтобы проверить работают ли такие системные программы как Диспетчер очереди печати и Удаленный вызов процедур RPC. Нужно обязательно запустить их, чтобы вернуть к жизни способность вашей «семерки» распечатывать документы.
В панели управления перейдем на вкладку системы и безопасности:
Далее, нам понадобится апплет администрирования
Откроем апплет служб.
Убедимся, что указанный диспетчер работает:
Также, убедимся, что работает и RPC.
Если же запустить службу не удается, тогда следует поинтересоваться ее зависимостями. Убедитесь, что каждая служба, от которой зависит нормальная работа диспетчера и RPC выполняется. Если RPC не работает, тогда вряд ли смогут выполняться многие другие приложения, которым жизненно необходимы обращения в «чужое» адресное пространство.
Чтобы посмотреть все зависимости спулера, откроем свойства его службы.
На вкладке Общие также можно запустить остановленную службу.
А вот все зависимости, от которых зависит работа спулера. Как видим среди зависимостей и RPC. В нижнем окошке указываются программы, зависящие от работы спулера.
На этом изображении показаны службы, от которых зависит работа RPC. В нижнем окошке можем увидеть множество программ, пользующихся услугами механизма вызова удаленных процедур.
Диагностика принтера средствами Windows
Есть смысл также продиагностировать принтер, который используется для распечатывания документа. Это можно сделать системными средствами. Средство устранения неполадок найдет и устранит возникшие неисправности.
Перейдем на вкладку оборудования и звука.
Далее, нам понадобится апплет устройств и принтеров.
Продиагностируем печатающее устройство, установленное по умолчанию.
Вызовем его контекстное меню и выберем пункт средства устранения неполадок.
Средство обнаружения начнет поиск проблем и найденные устранит.
Воспользуемся FixIt
Хорошим способом решить проблему, когда подсистема печати недоступна, является запуск специальной утилиты от Майкрософт, что создана для выявления и устранения неполадок при распечатывании документов. Она находится в свободном доступе, и загрузить ее можно с сайта Майкрософт. Это небольшое приложение нет необходимости устанавливать. Его достаточно просто запустить после загрузки с официального сайта, чтобы начать диагностику проблем с принтером.
После запуска FixIt появится окошко, предлагающее принять лицензионной соглашение.
Далее, программа начнет подгрузку необходимых модулей.
На следующем этапе выберем способ выявления и устранения проблем программой.
Утилита начнет свою работу.
Далее, FixIt предложит выбрать устройство для диагностики.
Затем, программа перейдет к шагам выявления и устранения ошибок, связанных с конкретным печатающим устройством.
Поиск решения с помощью PrinterDiagnostic
Другим способом решить возникшую проблему является средство PrinterDiagnostic все той же Майкрософт. Оно также доступно на сайте компании и часто его использование более эффективно, чем применение FixIt. Оно также не нуждается в установке. На изображениях ниже покажем вариант его применения.
Для загрузки утилиты нужно кликнуть ссылку Средство устранения неполадок принтера на странице устранения проблем с принтерами сайта технической поддержки Майкрософт.
После загрузки, на компьютере появится файл с расширением diagcab — его надо запустить.
Это средство предлагает несколько утилит, одна из которых умеет «бороться» с неполадками печатающих устройств.
Утилита начала свою работу.
Предложение о диагностике конкретного устройства.
Краткий итог
В данной статье мы рассмотрели часть возможных решений при появлении ошибки недоступной подсистемы печати. Чтобы успешно разрешить возникшую неприятность, нужно понимать, на каком из уровней она возникает.
Мы определили, что возможным уровнем ее появления может быть этап передачи пользовательского задания в спулер. Однако сам спулер, как и механизм RPC, могут оказаться повреждены или остановлены. Поэтому есть смысл восстановить системные файлы Windows, запустить службы Диспетчер очереди печати и Удаленный вызов процедур. Эффективным способом устранения неполадки станет применение таких приложений как FixIt или PrinterDiagnostic.