И вот он настал, этот день, когда в очередной раз, ожидая распечатки от томно подмигивающего принтера, я, наконец, решил, что мое терпение не безгранично. Посвящается тем, кого тоже достала медленная печать на перенаправленных принтерах. Все знают про достоинства технологии EasyPrint, теперь поговорим о ее недостатках и методах борьбы с ними.

Задачей технологии 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)


  1. SyavaSyava
    27.08.2016 16:04

    Эээ, доработка заключается тупо в отключении Easy Print и возврате к прежней системе печати?
    С Easy Print конечно есть проблемы, но в основном это проблема старых принтеров с драйверами, не умеющими в XPS. С проблемами производительности не сталкивался — если уж работает, то работает нормально. Но возможно мне просто везло…
    Тем не менее, пара полезных ключей реестра почерпнул, спасибо.


    1. botva0
      28.08.2016 22:51

      ну, если бы речь шла о возврате к предыдущей системе печати, то я бы и не писал ничего. это совсем не то же самое, что добавить принтеры на сервер, чтобы все клиенты на них печатали.
      во-первых, клиенты получают свои локальные принтеры. а во-вторых, мы можем управлять изоляцией драйвера, т.е. для каждого клиента создается свой экземпляр принтера и в случае каких-либо глюков валится не вся система печати, а сеанс конкретного клиента.
      что касается быстродействия, то проведите эксперимент — преобразуйте файл в xps, засеките время преобразования, сравните размер вывода, передайте его по сети, засеките время передачи, умножьте на количество клиентов. у меня из четырех принтеров от нр более-менее адекватно работал только нр 2410, а 1200, 1320 и р2015 тормозили так, что хотелось их разбить, и ведь это вполне рабочие лошадки, а не win-принтеры.


  1. ekerlostw
    27.08.2016 19:26
    -2

    А ScrewDriver один фиг надёжней… дорого только-_-


  1. semperD
    27.08.2016 20:40
    +1

    Если у тебя терминальная ферма то печать только через Easy Print. Кривые дрова могут полностью сломать службу печати


    1. dmbarsukov
      28.08.2016 13:06

      в основном кривые дрова от HP и из подсистема печати и свой обработчик печати.


      1. 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 версий


        1. Fanta
          28.08.2016 21:43

          На 2012R2 тоже все ОК ?


          1. Sleuthhound
            29.08.2016 07:08
            +1

            Да, главное держать только одну версию драйверов HP и везде одинаковые, как на серверах так и на раб.станциях.


            1. LoadRunner
              29.08.2016 09:24

              А с двусторонней печатью проблем нет?


              1. Sleuthhound
                29.08.2016 11:05

                С дуплексом была только 2 модели HP 2420dn и HP MFP M521dn, с ним проблем не было.



      1. dani
        28.08.2016 22:33
        +1

        В основном кривые драйвера от Canon, которые валят своим монитором всё, вплоть до того, что служба удаленных рабочих столов не может запустить сокет для RDP-Tcp. Так же кривые драйвера Samsung совсем плохо дружат с кривыми драйверами Xerox и выбивают диспетчер печати наглухо и навсегда до ручного удаления тех и других драверов. А вот драйвера от HP это самое стабильное что есть на сей день, если не вспоминать GDI принтеры серии 1010-1022


    1. haviras
      28.08.2016 22:59

      А как быть с уродскими Нр 1022 (домашний, увы), которые подключены к тонкому клиенту через ThinClent
      Периодически у этой хлебницы случается помутнение рассудка и в очереди печати можно найти 3-5 тысяч заданий на печать, которые сами плодятся и размножаются на ровном месте
      Помогает только ребут терминального сервера. за что бухгалтерия хочет убивать Итшников
      Драйвер XPS не катит.
      Скрюха также не вариант — принтер получается какбе локально подключенным в сервер терминалов в TCP:9100 (RAW) порт


      1. botva0
        29.08.2016 11:43

        на него, кстати, можно попробовать прикрутить подобную технологию. драйвер под х64 присутствует в windows update.


    1. botva0
      28.08.2016 23:00

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


  1. rader90
    27.08.2016 20:40
    -1

    Столкнулся с не стандартной проблемой. Нужна помощь с печатью у определенных пользователей с форматом бумаги заданной в дюймах. При перенаправление принтеров в терминальную сессию через rdp в контроллере домена я не смог найти как сменить формат бумаги автоматически. Возможно ли смена формата бумаги через GPO? Какое решение есть для смены формата бумаги если принтер через rdp сессию подключается?


    1. dmbarsukov
      28.08.2016 13:11

      Все настройки принтера подтягиваются из родного драйвера из клиентской системы. Для того, чтобы бумага была в дюймах надо ее на клиентской станции на этом принтере выставить в дюймах.
      С аналогичной ситуацией сталкивался, когда через EasyPrint МФУ HP просто не печатала автоматическую двусторонку. И сразу сбрасывала настройки после применения. Пришлось ставить дрова родные, и помучаться, потому что universalот HP на х86 не качался, а родной драйвер не качался на x64.
      Но двусторонка заработала только после прописывания драйвера и выставления автодвусторонки на клиентской машине по дефолту для этого принтера.


  1. davydt
    27.08.2016 22:10

    Проблема в том, что преобразование и передача, прибавившего в весе от такого преобразования, потока занимает слишком много времени.

    Во времена 2008R2 действительно замечал, что Easy Print работает значительно медленнее. Однако после обновления терминальных серверов до 2012R2 каких-то существенных падений производительности не наблюдал. Клиенты работают в т.ч. на 5 мегабитных каналах, не жалуются.


    1. botva0
      29.08.2016 11:49

      возможно, что они все-таки подкрутили xps формат, нужно будет поэкспериментировать. в 2008r2 на некоторых типах файлов разница в объеме до 100 раз.


  1. DrReiz
    28.08.2016 09:47

    Проблема в том, что преобразование и передача, прибавившего в весе от такого преобразования, потока занимает слишком много времени.


    Какой размер передачи до преобразования в xps и после преобразования в xps?


    1. botva0
      28.08.2016 22:37

      разница от 6 до 100 раз, зависит от документа. иногда 20 килобайт превращаются в 2 мегабайта.


  1. dklm
    28.08.2016 15:54

    ;-) нужно просто отказаться от принтеров с подключением по узб, и использовать только нормальные сетевые принтера.


    1. rtzra
      29.08.2016 05:33

      Нормальные — это какие? Мне драйвера от HP ломали всю систему печати и не один раз. Canon и Samsung тоже доставляют. Поставил ScrewDriver — стало жить намного легче.


    1. vviz
      29.08.2016 09:47

      И VPN. Ибо передача трафика через RDP сессию, да еще на мапированный принтер однозначно медленнее, чем напрямую на принтер.


    1. botva0
      29.08.2016 12:05

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


      1. dklm
        29.08.2016 12:40

        сетевой принтер нужно подключать по сети ;-) и в этом случаи easyprint не участвует.

        про бабки: я начал заставлять покупать бу принтера HP 3015dn с пробегом до 100к (примерно за 160 уе.)

        покупка принтера класса HP 3015dn и выше также позволяет уйти от схемы когда у каждого на столе стоит принтер:
        во первых — он не на каждый стол поместится =).
        во вторых: — нужно принтера мониторить, и когда кто-то закатывает истерику что ему нужен «личный принтер», можно «посмотреть» отчет и сказать кто сколько печатает…


        1. botva0
          29.08.2016 12:56

          сетевой принтер нужно подключать по сети ;-) и в этом случаи easyprint не участвует.

          вот это можно занести в нетленку :). использование технологии easyprint никак не зависит от метода подключения принтера. я еще думал описывать ли суть технологии в посте, (т.к. описаний и так полно в сети), но решил все-таки одним предложением описать. процитирую, уж простите.
          Задачей технологии EasyPrint является преобразование контента, выводимого на печать, в xps формат и передача его на клиентский компьютер, откуда он и будет напечатан с помощью родного драйвера.

          или вы предлагаете добавить принтер на сервер для всех пользователей? если в этом суть вашего поста, то такой подход имеет ряд недостатков, о которых многие здесь писали в коментах. например, ошибка в драйвере валит всю систему печати. а при перенаправлении для каждого клиента создается свой экземпляр принтера и ошибка в драйвере валит один конкретный сеанс, остальные же продолжают работать.


          1. dklm
            02.09.2016 09:11
            +1

            Что-то мне не понятно, как связан сетевой принтер и использование Easy Print.
            Вы подключаете сетевые принтера к клиентским ПК, а затем перенаправляете принтера с клиентского ПК на удаленный рабочий стол?

            https://technet.microsoft.com/ru-ru/library/cc732264(v=ws.11).aspx

            Службы удаленных рабочих столов предоставляет возможности перенаправления принтеров. Это позволяет направлять задания печати с сервера на принтер, подключенный к клиентскому компьютеру или находящийся в общем доступе для клиентского компьютера.
            *******
            Драйвер Компонент Easy Print служб удаленных рабочих столов необходим в тех случаях, когда на сервере Узел сеансов удаленных рабочих столов не установлен такой же драйвер принтера, как и на клиентском компьютере.
            *******


            1. botva0
              02.09.2016 15:44

              вот и мне непонятно, но, надеюсь, это не ко мне вопрос :).


            1. botva0
              02.09.2016 16:45

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


  1. Maxlinus
    29.08.2016 11:51

    почемуто не хотят мой коментарий постить:(
    я уже давно печатаю по принцепу «через файл», подробнее я тут описал http://unixforum.org/index.php?showtopic=135205, и тоже не нужно не каких драйверов и прочих танцев…


    1. botva0
      29.08.2016 11:57

      это я его не отмодерировал, сорри :).
      через pdf файл — это как раз и есть кустарная реализация easyprint драйвера. проблема все та же — скорость конвертации и вес файла (как следствие — скорость передачи по сети). возможно, что pdf формат не так прожорлив, как xps, но вопрос в том, что при интенсивной печати все равно будет грузить сеть и тормозить.
      можете провести эксперимент сколько времени у вас займет конвертация, сравнить размер вывода и время печати pdf против стандартного файла.
      понятно, что когда нет выбора, то приходится с таким мириться, но пост именно про оптимизацию.