Рейтинг 4.8 из 5 (10 Голосов)

printers

Чаще всего эти проблемы случаются из-за того что в сети установлены принтеры разных производителей, с разными драйверами. В результате останавливается диспетчер очереди печати на терминальных серверах Windows.Также операционки разных разрядностей, те 32bit и 64bit. Также подобное поведение в большей мере проявляется у USB принтеров, в меньшей мере у сетевых.

Рассматривать установку драйверов не будем - разберемся со службой печати. Данный мануал подойдет как для Windows 2008 и выше, так и для windows 7.

Перезапуск службы печати в Windows

Данная служба называется print spooler. Для чего может потребоваться выполнить перезапуск службы печати? Бывает так, что в какой-то момент  очередь печати принтера просто забивается, особенно если печать ведется через сервер терминалов.

Как перезапустить службы печати Windows через оснастку службы

panel

Открываем - Пуск - Панель управления

administr

Далее ищем пункт - Администрирование - Службы

sluzby

либо нажимаем win+R, открыв командную строку - пишем services.msc и жмем enter. У вас откроется оснастка Службы.

services

Находим нашу с вами службу, а именно Диспетчер печати, видим, что статус у нее сейчас Работает.

dispprint

Щелкаем правым кликом и из контекстного меню выбираем Перезапустить.

perezapusk

Служба перезапустится и ваш принтер вероятно, начнет снова печатать.

Как перезапустить службы печати Windows  через консоль.

Открываем cmd через Пуск.

И пишем в нем две команды:

net stop spooler
net start spooler

Как очистить очередь печати принтера (Windows)

Проблема: документы не удаляются из очереди, причем не помогает ни отключение принтера, ни перезагрузка компьютера.

printer

В этом случае используем жесткий метод очистки, описанный ниже.

Необходимо открыть командную строку, запущенную от имени администратора, и выполнить следующие команды:

net stop spooler
del %systemroot%\system32\spool\printers\*.shd
del %systemroot%\system32\spool\printers\*.spl
net start spooler

Для ленивых Cmd файл в архиве zipremove_printer_jobs.zip217 Байт. (Запускать от имени Администратора)

После всех манипуляций может получиться так, что на терминальных серверах принтеры все равно через какое то время перестают работать.

Причины этих проблем разделим следующим образом.

  • Неидентичные версии драйверов на клиентской машине и на терминальном сервере.
  • Нестабильность драйверов в терминальной среде.
  • Высокая нагрузка на службу «диспетчер очереди печати»
  • Отсутствие работоспособных драйверов для терминальных серверов.

Версии драйверов.

Драйверы различных версий на сервере и клиентских машинах (в общем, то это первое, что нужно проверить) должны быть идентичны в т. ч. и с точки зрения версии PCL. Если версии отличаются то, скорее всего печати нам не видать. Также можно отметить, что когда стоит выбор использовать PCL5 или PCL6, лучше устанавливать драйверы PCL5, т.к. на практике они работают стабильнее. PCL6 возможно пригодится для печати векторной графики, но в офисах, где печатаются в основном текстовые документы, он не так актуален.

Высокая нагрузка и нестабильность драйверов в терминальной среде.

Нестабильная работа драйверов и, соответственно, перегрузка ими диспетчера очереди печати (по русски – «спулера») вызывала (и будет вызывать, если не чего не делать), остановку всего процесса печати на сервере, а иногда и остановку (зависание) ОС сервера в целом.

До выхода Windows Server 2008, штатных средств по оптимизации нагрузки спулера в ОС Windows Server не было.

Поэтому единственным адекватным методом борьбы с регулярным зависанием спулера (и соответственно, массовыми звонками в тех. поддержку от разгневанных пользователей), был bat-ник, по расписанию превентивно перезапускающий процесс spoolsv.exe (например, утром и в обеденное время), освобождая спулер от висящих запросов и очередей.

С выходом Windows Server 2008 и Windows 7 появилась возможность изоляции драйверов принтера. Данная возможность позволяет драйверу принтера подгружать задачи не в Spoolsv.exe, а специальный под-процесс PrintIsolationHost.exe.

При такой конструкции, зависание драйвера одного принтера, не вешает всю очередь печати, поскольку встает только один под-процесс PrintIsolationHost.exe, а сам процесс спулера spoolsv.exe остается работоспособным.

Теперь пару слов о настройке. Диспетчер печати по умолчанию выполняет драйверы печати в изолированном процессе. Изменить можно при помощи групповой политики, параметр "Выполнять драйверы принтеров в изолированных процессах" .

Также важен еще один параметр групповой политики это – "Переопределить параметр совместимости выполнения драйвера печати"

Для того чтобы включить изоляцию драйверов принтеров, нужно использовать редактор локальной групповой политики (gpedit.msc):

gpedit

Откройте gpedit.msc и последовательно перейдите:

Параметры компьютера (Computer Configuration) -> Административные шаблоны (Administrative Templates)-> Принтеры (Printers).

Среди перечня политик нужно включить следующие:

Выполнить драйверы принтеров в изолированных процессах (Execute print drivers in isolated processes)

Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати (Override print driver execution compatibility setting reported by print driver)

К сожалению, данная функция никак не решит проблему отсутствия работоспособных драйверов для терминальных сред или слишком высокой нагрузки на спулер (например, когда на сервере установлены 10-ки разных драйверов разных устройств).

Отсутствие работоспособных драйверов для терминальных сред и сверхнагрузка на спулер.

В ситуации, когда с терминального сервера необходимо печатать на 10-ках различных печатающих устройствах (в зоопарке из принтеров, если быть точнее), многие из которых не имеют рабочих драйверов для терминалов, следует применять функцию TS Easy Print.

TS Easy Print и сторонние решения вроде коммерческого продукта ScrewDrivers - в данном материале не рассматриваются.

Просмотров: 6645 Печать Назад
 
 
Рекомендуем по теме...