Как решить проблемы подсистемы печати в терминальном сервере
Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.
Подробности под катом.
Вместо Intro
Наверняка, почти каждый системный администратор, работающий с Windows и, в частности, с терминальным сервером, сталкивался с проблемами печати.
Разрывается телефон, у всех одна и та же проблема: «Нажимаю на печать — ничего не происходит!». Идем смотреть логи и видим следующую картину:
Знакомо? Никаких подробностей, ничего — гадайте, господа администраторы! На форумах в интернете полно вопросов по этой теме и очень мало полных, структурированных ответов. Что ж, попробуем собрать в кучу все варианты решений.
Причины и решения
Итак, из-за чего может происходить подобная ситуация? Большую часть подобных ситуаций вызывают установленные на сервере драйверы.
- Необходимо помнить, что драйверы у клиентов и на сервере должны быть идентичны
- Убедитесь, что включена изоляция драйверов
- Удалите все драйвера на сервере и попробуйте использовать TS Easy Print
- Попробуйте решения сторонних компаний
А теперь пройдемся подробнее по всем пунктам. Для начала установим на наш терминальный сервер роль «Службы печати и документов».
Это позволит нам удобно управлять драйверами и принтерами, установленными в системе.
Идентичные драйвера
Думаю, тут особо не о чем рассказывать. Стоит помнить, что драйвера необходимо брать с официальных страниц изготовителя принтера. Так же еще один момент — стабильнее всего ведут себя PCL5. Если есть возможность выбора между PCL5 и PCL6 — стоит установить PCL5 (соответственно, серверу и клиенту).
Изоляция драйверов
В Windows 2008 появилась замечательная возможность изоляции драйверов принтера. Теперь драйвер принтера подгружается не Spoolsv.exe а специальным процессом PrintIsolationHost.exe. При «вылетании» драйвера принтера «слетает» только один экземпляр PrintIsolationHost.exe, а сама служба «Диспетчера печати» остается работоспособной, что, как понимаете, весьма влияет на настроение пользователей 😉
Чтобы включить данную возможность, нам необходимо открыть редактор локальной групповой политики (gpedit.msc) и пройти следующим путем: «Параметры компьютера -> Административные шаблоны -> Принтеры». Находим и включаем следующие пункты:
- Выполнить драйверы принтеров в изолированных процессах
- Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати
Будет выглядеть следующим образом:
TS Easy Print
Видимо, вняв наконец стенаниям системных администраторов, компания Microsoft решила что-то сделать с необходимостью ставить зоопарк драйверов на терминальный сервер и падающим из-за этого spoolsv.exe. В итоге, на свет родилась технология TS Easy Print. Ключевой особенностью является, то, что больше нам не нужно устанавливать на сервер драйвера для каждого принтера — вместо этого используется унифицированный драйвер Remote Desktop Easy Print, соответственно, мы уходим от проблемы падающего спулера — ведь все операции с печатью выполняются на компьютере клиента.
Для того, чтобы явно определить, что мы хотим использовать на терминальном сервере TS Easy Print, необходимо пройти опять же в редактор локальной групповой политики (gpedit.msc) по следующему пути: «Параметры компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров». Нас интересуют следующие пункты, которые надо включить:
- Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола
- Перенаправлять только используемый по умолчанию принтер клиента
Второй пункт необходим, если мы хотим, чтобы в терминале у клиента был только его принтер по умолчанию.
Далее, необходимо очистить наш сервер от лишних драйверов принтеров. Это можно сделать в менеджере роли «Службы печати и документов».
Внимательно удаляйте драйвера! Необходимо оставить в живых такие вещи, как «Remote Desktop Easy Print» и «Microsoft XPS Document Writer». Именно они и отвечают за передачу печати на клиента.
Теперь перейдем к требованием на клиенте. Их всего два — использование протокола RDP версии не ниже 6.1 и .NET Framework 3.0 с пакетом обновления 1 (SP1). Больше от них ничего не требуется.
Решения сторонних компаний
Избавиться от проблемы падающего спулера призваны такое ПО как, например, ScrewDrivers (сайт). Оно предоставляет клиент-серверную архитектуру.
Сервер ScrewDrivers — это компонент, который необходимо установить на серверы, на которых планируется использовать печать в терминальном сеансе. Клиент ScrewDrivers должен быть установлен на рабочих станциях. Именно этот компонент позволяет создать на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам пользователя.
В целом, напоминает Easy Print, но не бесплатно (впрочем, есть лекарства ;).
Источник
Easy print работает не у всех
Все привет, такой вопрос. С EAsy Print уже давно работаю, проблем никаких не встречал. Но тут она появилась.
Имеются несколько принтеров в том числе Hp 1120 MFP. Все они печатали и тут по какойто причине HP через Easy Print перестал печатать
со всех клиентских компьютеров. Переустановил его на другое рабочее место подключил локально к ПК работника, расшарил в AD, всем егог подсоединил кому надо, локально работает в Easy нет. Принтер маппится, но с него просто не идет печать. в журнале приложений и служб появляется след. ошибка :
Сбой при печати документа Табличный документ, принадлежащего владельцу . (user). на принтере HP LaserJet M1120 MFP (перенаправлено 167). Повторите печать этого документа или перезапустите очередь печати.
Тип данных: RAW. Размер файла очереди в байтах: 2940. Число напечатанных байт: 0. Общее число страниц в документе: 1. Число напечатанных страниц: 0. Клиентский компьютер: \\server12. Код ошибки Win32, возвращенный обработчиком заданий печати: 2147746065. Требуемый класс отсутствует в ClassFactory.
В безопасности папки PRINTERS все в порядке. другие принтеры печатают, это злостный противец печати печатает только локально не в TS. НА сервак дрова не ставил.
| он видимо хоть и работает, но система подходящим его не считает. » |
| Принетр HP m1120 на клиенте. Windows 2008 R2 Установил параметр групповой политики «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» в состояния «Отключено». После этого перенаправленный принтер стал с драйвером HP’шным а не EasyPrint’овским. Всё заработало. » |
мучался недели две, перепробовал все мыслимые и немыслимые способы.
ramka красавчик! единственный, чье решение работает! просто и сердито! Огромное спасибо.
В результате этой операции, при входе на удаленный рабочий стол так же само перенаправляется принтер (в моем случае HP LaserJet M1132 MFP), только драйвер у него стоит не «Easy Print» а родной «HP LaserJet M1132 MFP».
И, что наиболее всего радует, печать РАБОТАЕТ!
Так как сам долго искал-вспоминал, как же это сделать, распишу на всякий случай для тех, кому тяжело понять решение:
1. Пуск-Выполнить (или Win+R): gpedit.msc
2. Политика «Локальный компьютер» — «Конфигурация компьютера» — Административные шаблоны — Все параметры — Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола — Отключить
P.S. есть еще ветка «Конфигурация пользователя» — по тому же пути можно задать настройку для конкретного пользователя
P.P.S. если у вас на сервере нет указанного драйвера, его можно найти на сайте производителя.
При установке драйвера вас попросят указать порт. давите LPT, пусть дрова пропишутся в системе, а сам принтер (которого на самом деле на сервере нет, можно потом просто удалить в списке принтеров).
| ramka, какую проблему помогает решить Ваша информация? Решение проблем при печати через EasyPtint путём отказа от использования EasyPrint? ) » |
своим постом вы обесценили РЕШЕНИЕ проблемы и увели далеко в сторону. Товарищ И. Сусанин, я узнал Вас в гриме)))
| Для работы через Easy Print решается установкой и использованием драйвера XPS на клиента, для этого принтера. Для серии LJM1130-M1210 http://h10025.www1.hp.com/ewfrf/wc/s. 75462&sw_lang= » |
не вздумайте даже пробовать устанавливать данный драйвер XPS не по инструкции которая приведена на сайте производителя. Данный драйвер XPS должен устанавливаться поверх обычного.
этого не знал, потому пытался установить принтер, указав ему XPS драйвера. пришлось указывать кучу недостающих файлов. в результате получил принтер-фантом, который невозможно ни удалить ни переустановить на локальном компьютере (под XP) который к тому же еще и не печатает; пришлось полдня вычищать реестр вручную. т.к. Driver Sweeper и подобные ему не помогли.
Последний раз редактировалось GetNight, 29-06-2012 в 19:31 .
Источник
Проблема с печатью EasyPrint на терминальном сервере
С момента выхода Windows Server 2008 Microsoft внесла некоторые изменения в систему печати, призванные облегчить работу системных администраторов. Появился универсальный драйвер печати EasyPrint. До момента выхода EasyPrint при подключении к удаленному рабочему столу (терминалу) проброс принтеров с локального компьютера осуществлялся только в том случае, если на сервере терминалов был установлен драйвер принтера той же версии, что и на локальном компьютере.
EasyPrint является универсальным драйвером печати и по умолчанию загружается для всех принтеров у клиентов удаленного рабочего стола. На деле это значительно уменьшило проблемы с печатью, поскольку теперь не нужно устанавливать отдельный драйвер для каждого принтера у подключаемых пользователей.
В большинстве случаев EasyPrint работает без проблем, но бывают исключения. Наиболее проблемными оказались принтеры фирмы HP. При подключении принтер подхватывался, на него устанавливался драйвер EasyPrint, но возникают конфликт и печать не работает.
Для решения этой проблемы рекомендуется отключить EasyPrint и использовать драйвер определенного принтера или универсальный драйвер HP.
EasyPrint для компьютеров в домене отключается средствами групповой политики. Для этого необходимо перейти в Computer Configuration -> Administrative templates -Windows Components -> Remote Desktop Services > Remote Desktop Session Host -> Printer Redirection для Windows Server 2008 R2 или Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection для Windows Server 2008. В нем необходимо отключить опцию Use Remote Desktop Easy Print printer driver first для Server 2008 R2 или Use Terminal Services Easy Print Driver First Server 2008 соответственно.
При такой настройке для компьютера клиента, на который действует данная GPO, первым делом будет осуществлен поиск родного драйвера для принтера, если он не будет найден, то следующим этапом будет загружен драйвер EasyPrint. Следует обратить внимание, что отображение принтера в панели управления еще не гарантирует работу печати, т.к. в частности может быть использован драйвер EasyPrint, который не будет отрабатывать на данном принтере.
В заключении хотел бы привести общие требования для работы печати по удаленке:
Последовательность действий для смены драйвера с EasyPrint на родной
- Добавляем себя в локальную группу “Print Operators” терминального сервера
- Устанавливаем роль “Print Services”
- Заходим в консоль “Print Services”. По умолчанию операторы печати могут только просматривать принтеры других пользователей, для изменения их настроек нужно выбрать необходимый принтер, зайти в Свойства –> Безопасность -> Дополнительно -> Владелец. Добавляем операторов печати. Закрываем окна. Открываем снова Свойства –> Безопасность и для группы “Print Operators” назначаем права на редактирование.
- Заходим в Свойства принтера -> Дополнительно и меняем драйвер принтера с EasyPrint на родной драйвер принтера.
Стоит отметить, что смена драйвера для конкретного принтера будет действовать лишь на период сессии в которой доступен этот драйвер для того, что бы для принтера устанавливался родной драйвер каждый раз при подключении к серверу удаленного рабочего стола необходимо средствами групповой политики отключить EasyPrint. - Создаем групповую политику на OU в котором находятся учетные записи подключающихся компьютеров. Переходим в раздел Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection и отключаем опцию Use Terminal Services Easy Print Driver First
Как правило, для выяснения поддерживает ли принтер печать с удаленного рабочего стола необходимо искать конкретную модель, однако есть и списки.
Для тестирования драйвера принтера на многопользовательское использование можно использовать утилиту StressPrinters.
Источник