Задачей технологии EasyPrint является преобразование контента, выводимого на печать, в xps формат и передача его на клиентский компьютер, откуда он и будет напечатан с помощью родного драйвера. Проблема в том, что преобразование и передача, прибавившего в весе от такого преобразования, потока занимает слишком много времени. За универсальность приходится платить.
Решение состоит в использовании на сервере родных драйверов для каждого принтера, это позволяет осуществлять печатать напрямую, получая от клиента только физический адрес принтера. Сразу отмечу, что такое решение связано с риском превратить сервер в помойку драйверов, поэтому эти моменты нужно отслеживать. Ну и, понятно, что должен существовать драйвер нужного принтера для x64 систем (думаю, что x86 на серверах уже неактуально).
Перейдем от теории к практике.
Добавляем администратора в группу «Операторы печати», чтобы видеть перенаправленные принтеры всех пользователей.
Отключаем преимущественное использование EasyPrint. Запускаем оснастку локальной политики (gpedit.msc), для доменов нужно использовать доменную политику. Переходим в Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров и устанавливаем политику «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» в «отключено».
Запускаем оснастку «Управление печатью» (printmanagement.msc) и добавляем драйверы нужных принтеров на сервер печати.
Очень важно: название принтера в драйвере должно в точности совпадать с названием принтера в драйвере на клиентской машине, иначе перенаправленный принтер не подхватит драйвер на сервере. Проверить, используется ли драйвер EasyPrint для конкретного перенаправленного принтера, мы можем в свойствах этого принтера в оснастке «Устройства и принтеры» (после установки драйвера на сервер, для его использования пользователь должен перелогиниться на сервере). Если название принтеров в драйверах не совпадают, то запускаем редактор реестра, переходим на
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3]
и меняем название нужного драйвера (после этого нужна перезагрузка). Благодаря такому твику, мы можем использовать на сервере нужный нам драйвер, отличный от клиентского. Для нужных мне принтеров HP я подобрал драйверы с одинаковым названием для клиентов (Windows XP) и для сервера (Windows Server 2008R2), использовав драйвера для разных редакций Windows Vista с сайта HP. Ленивые могут просто использовать драйвер от Microsoft, исправив его название в реестре.Если у вас клиенты x64 с драйверами из поставки Windows или из Windows update, то есть большая вероятность, что они автоматически подтянутся на сервер при подключении клиента. Поэтому следите за установленными драйверами с помощью оснастки «Управление печатью». Еще один твик – если у вас подтянулся ненужный драйвер, то вы можете удалить его из оснастки, не удаляя package, а ссылку на package удалить в этой ветке реестра
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\PackageInstallation\Windows x64\DriverPackages]
. Тогда при следующем подключении этот драйвер не будет снова устанавливаться, и печать на этом принтере будет происходить средствами EasyPrint.Слишком подробно не описывал, думаю, что читатели «в теме», если есть вопросы — задавайте.
Комментарии (32)
semperD
27.08.2016 20:40+1Если у тебя терминальная ферма то печать только через Easy Print. Кривые дрова могут полностью сломать службу печати
dmbarsukov
28.08.2016 13:06в основном кривые дрова от HP и из подсистема печати и свой обработчик печати.
Sleuthhound
28.08.2016 18:38+2В свое время именно дрова HP и именно для терминальной фермы из пары сотен серверов заставили нас провести детальное исследование с целью найти наиболее стабильную версию универсальных дров от HP, чтобы все работало на разных ОС и из разных программ. Версия была найдена, тестировали в плоть до последних цифр билда.
Если кому интересно, то ps-x32-5.7.0.16448, pcl5-x32-5.7.0.16448, pcl6-x32-5.7.0.16448, то же для x64 версийFanta
28.08.2016 21:43На 2012R2 тоже все ОК ?
Sleuthhound
29.08.2016 07:08+1Да, главное держать только одну версию драйверов HP и везде одинаковые, как на серверах так и на раб.станциях.
LoadRunner
29.08.2016 09:24А с двусторонней печатью проблем нет?
Sleuthhound
29.08.2016 11:05С дуплексом была только 2 модели HP 2420dn и HP MFP M521dn, с ним проблем не было.
dani
28.08.2016 22:33+1В основном кривые драйвера от Canon, которые валят своим монитором всё, вплоть до того, что служба удаленных рабочих столов не может запустить сокет для RDP-Tcp. Так же кривые драйвера Samsung совсем плохо дружат с кривыми драйверами Xerox и выбивают диспетчер печати наглухо и навсегда до ручного удаления тех и других драверов. А вот драйвера от HP это самое стабильное что есть на сей день, если не вспоминать GDI принтеры серии 1010-1022
haviras
28.08.2016 22:59А как быть с уродскими Нр 1022 (домашний, увы), которые подключены к тонкому клиенту через ThinClent
Периодически у этой хлебницы случается помутнение рассудка и в очереди печати можно найти 3-5 тысяч заданий на печать, которые сами плодятся и размножаются на ровном месте
Помогает только ребут терминального сервера. за что бухгалтерия хочет убивать Итшников
Драйвер XPS не катит.
Скрюха также не вариант — принтер получается какбе локально подключенным в сервер терминалов в TCP:9100 (RAW) портbotva0
29.08.2016 11:43на него, кстати, можно попробовать прикрутить подобную технологию. драйвер под х64 присутствует в windows update.
botva0
28.08.2016 23:00естественно могут, я специально об этом написал. удобство в том, что дрова можно ставить не для всех принтеров, а для тех, на которые приходится основная нагрузка, остальные пусть себе печатают через easyprint.
rader90
27.08.2016 20:40-1Столкнулся с не стандартной проблемой. Нужна помощь с печатью у определенных пользователей с форматом бумаги заданной в дюймах. При перенаправление принтеров в терминальную сессию через rdp в контроллере домена я не смог найти как сменить формат бумаги автоматически. Возможно ли смена формата бумаги через GPO? Какое решение есть для смены формата бумаги если принтер через rdp сессию подключается?
dmbarsukov
28.08.2016 13:11Все настройки принтера подтягиваются из родного драйвера из клиентской системы. Для того, чтобы бумага была в дюймах надо ее на клиентской станции на этом принтере выставить в дюймах.
С аналогичной ситуацией сталкивался, когда через EasyPrint МФУ HP просто не печатала автоматическую двусторонку. И сразу сбрасывала настройки после применения. Пришлось ставить дрова родные, и помучаться, потому что universalот HP на х86 не качался, а родной драйвер не качался на x64.
Но двусторонка заработала только после прописывания драйвера и выставления автодвусторонки на клиентской машине по дефолту для этого принтера.
davydt
27.08.2016 22:10Проблема в том, что преобразование и передача, прибавившего в весе от такого преобразования, потока занимает слишком много времени.
Во времена 2008R2 действительно замечал, что Easy Print работает значительно медленнее. Однако после обновления терминальных серверов до 2012R2 каких-то существенных падений производительности не наблюдал. Клиенты работают в т.ч. на 5 мегабитных каналах, не жалуются.botva0
29.08.2016 11:49возможно, что они все-таки подкрутили xps формат, нужно будет поэкспериментировать. в 2008r2 на некоторых типах файлов разница в объеме до 100 раз.
DrReiz
28.08.2016 09:47Проблема в том, что преобразование и передача, прибавившего в весе от такого преобразования, потока занимает слишком много времени.
Какой размер передачи до преобразования в xps и после преобразования в xps?botva0
28.08.2016 22:37разница от 6 до 100 раз, зависит от документа. иногда 20 килобайт превращаются в 2 мегабайта.
dklm
28.08.2016 15:54;-) нужно просто отказаться от принтеров с подключением по узб, и использовать только нормальные сетевые принтера.
rtzra
29.08.2016 05:33Нормальные — это какие? Мне драйвера от HP ломали всю систему печати и не один раз. Canon и Samsung тоже доставляют. Поставил ScrewDriver — стало жить намного легче.
vviz
29.08.2016 09:47И VPN. Ибо передача трафика через RDP сессию, да еще на мапированный принтер однозначно медленнее, чем напрямую на принтер.
botva0
29.08.2016 12:05да не вопрос, были бы деньги :). я тоже считаю, что лучше быть богатым но здоровым, чем бедным но больным. а пост про оптимизацию печати.
даже на сетевой принтер через драйвер easyprint, будет тормозить, ибо тратится время на конвертацию файла, увеличивается размер вывода (соответственно, грузится сеть), ну и вывод происходит не напрямую, а через драйвер на клиентском компьютере.dklm
29.08.2016 12:40сетевой принтер нужно подключать по сети ;-) и в этом случаи easyprint не участвует.
про бабки: я начал заставлять покупать бу принтера HP 3015dn с пробегом до 100к (примерно за 160 уе.)
покупка принтера класса HP 3015dn и выше также позволяет уйти от схемы когда у каждого на столе стоит принтер:
во первых — он не на каждый стол поместится =).
во вторых: — нужно принтера мониторить, и когда кто-то закатывает истерику что ему нужен «личный принтер», можно «посмотреть» отчет и сказать кто сколько печатает…botva0
29.08.2016 12:56сетевой принтер нужно подключать по сети ;-) и в этом случаи easyprint не участвует.
вот это можно занести в нетленку :). использование технологии easyprint никак не зависит от метода подключения принтера. я еще думал описывать ли суть технологии в посте, (т.к. описаний и так полно в сети), но решил все-таки одним предложением описать. процитирую, уж простите.
Задачей технологии EasyPrint является преобразование контента, выводимого на печать, в xps формат и передача его на клиентский компьютер, откуда он и будет напечатан с помощью родного драйвера.
или вы предлагаете добавить принтер на сервер для всех пользователей? если в этом суть вашего поста, то такой подход имеет ряд недостатков, о которых многие здесь писали в коментах. например, ошибка в драйвере валит всю систему печати. а при перенаправлении для каждого клиента создается свой экземпляр принтера и ошибка в драйвере валит один конкретный сеанс, остальные же продолжают работать.dklm
02.09.2016 09:11+1Что-то мне не понятно, как связан сетевой принтер и использование Easy Print.
Вы подключаете сетевые принтера к клиентским ПК, а затем перенаправляете принтера с клиентского ПК на удаленный рабочий стол?
https://technet.microsoft.com/ru-ru/library/cc732264(v=ws.11).aspx
Службы удаленных рабочих столов предоставляет возможности перенаправления принтеров. Это позволяет направлять задания печати с сервера на принтер, подключенный к клиентскому компьютеру или находящийся в общем доступе для клиентского компьютера.
*******
Драйвер Компонент Easy Print служб удаленных рабочих столов необходим в тех случаях, когда на сервере Узел сеансов удаленных рабочих столов не установлен такой же драйвер принтера, как и на клиентском компьютере.
*******
botva0
02.09.2016 16:45вы же задвигаете тезис о том, что печать на сетевых принтерах происходит без участия easyprint. а это, на самом деле, понятия совершенно независимые друг от друга. на сетевой принтер можно печатать как с помощью easyprint, так и без оной. перенаправление клиентских принтеров имеет ряд преимуществ по сравнению с установкой принтера на сервере, о которых я написал выше (безотносительно способа подключения устройства).
вообще, вы чрезмерно переоцениваете роль сетевого подключения, оно всего-навсего позволяет сделать принтер независимым от клиентского компа. гораздо более важны другие характеристики принтеров, объем буфера, скорость процессора, размер картриджа, надежность механики и руками написанные драйвера. мне попадались такие сетевые убожества, что лучше даже не знать, что такие бывают.
Maxlinus
29.08.2016 11:51почемуто не хотят мой коментарий постить:(
я уже давно печатаю по принцепу «через файл», подробнее я тут описал http://unixforum.org/index.php?showtopic=135205, и тоже не нужно не каких драйверов и прочих танцев…botva0
29.08.2016 11:57это я его не отмодерировал, сорри :).
через pdf файл — это как раз и есть кустарная реализация easyprint драйвера. проблема все та же — скорость конвертации и вес файла (как следствие — скорость передачи по сети). возможно, что pdf формат не так прожорлив, как xps, но вопрос в том, что при интенсивной печати все равно будет грузить сеть и тормозить.
можете провести эксперимент сколько времени у вас займет конвертация, сравнить размер вывода и время печати pdf против стандартного файла.
понятно, что когда нет выбора, то приходится с таким мириться, но пост именно про оптимизацию.
SyavaSyava
Эээ, доработка заключается тупо в отключении Easy Print и возврате к прежней системе печати?
С Easy Print конечно есть проблемы, но в основном это проблема старых принтеров с драйверами, не умеющими в XPS. С проблемами производительности не сталкивался — если уж работает, то работает нормально. Но возможно мне просто везло…
Тем не менее, пара полезных ключей реестра почерпнул, спасибо.
botva0
ну, если бы речь шла о возврате к предыдущей системе печати, то я бы и не писал ничего. это совсем не то же самое, что добавить принтеры на сервер, чтобы все клиенты на них печатали.
во-первых, клиенты получают свои локальные принтеры. а во-вторых, мы можем управлять изоляцией драйвера, т.е. для каждого клиента создается свой экземпляр принтера и в случае каких-либо глюков валится не вся система печати, а сеанс конкретного клиента.
что касается быстродействия, то проведите эксперимент — преобразуйте файл в xps, засеките время преобразования, сравните размер вывода, передайте его по сети, засеките время передачи, умножьте на количество клиентов. у меня из четырех принтеров от нр более-менее адекватно работал только нр 2410, а 1200, 1320 и р2015 тормозили так, что хотелось их разбить, и ведь это вполне рабочие лошадки, а не win-принтеры.