31.05.2011

Небольшой FAQ по настройке печати в RDP

При работе в терминальной сессии принтеры, которые мапятся на серв очень часто капризничают. Очень долго ковырял с чем это может быть связано. В итоге к конкретному решению так и не пришел, но всё, что узнал решил описать здесь.
Вообще сам протокол RDP довольно глючный, поэтому если у кого-то работает принтер в рдп, это ещё не значит, что у Вас на том же железе, с той же конфигурацией всё будет работать без проблем. Да и у того, у кого работает может через час отвалиться, а замапить принтер получится только с помощью плясок.

По RDP могут корректно работать только те принтеры, в названии которых присутствуют 3 заветные буковки: PCL. Соответственно драйвера на них нужны тоже PCL. Существует как минимум 2 разновидности этих драйверов: PCL5 и PCL6. Говорят, 6-я версия глючная, поэтому ставить нужно 5-ую. Также существует разница в версиях RDP. Маппинг принтеров поддерживается только в версиях RDP начиная с 5.2 (Windows Server 2003), в версию 6.1 (Windows Server 2008) входит Terminal Services Easy Print driver (позволяет не устанавливать драйвера клиентских принтеров на сервере).  Но это тоже глючная херня и полагаться на неё не стОит.

Принтеры, подключенные локально к порту, имя которого начинается не с букв COM, LPT или USB печатать так просто не захотят (http://support.microsoft.com/kb/302361). 

Ещё один костыль для исправления этой проблемы:
1. Устанавливаем локальный USB принтер у клиента стандартным образом;
2. Расшариваем его;
3. даём команду:
net use lpt1: \\имя_компа\имя_принтера /PERSISTENT:YES
4. Устанавливаем новый "виртуальный" принтер, якобы подключенный к lpt1 и назначаем его по-умолчанию;
5. Всё, после этой операции любой USB принтер, вне зависимости от заявленной производителем совместимости, замечательно видится при подключении к терминалу. (http://forum.windowsfaq.ru/showthread.php?t=97478)

Естественно, должна стоять галочка "использовать локальные принтеры" на клиенте и снята галочка "запретить перенаправление принтеров" на сервере. Имя принтера должно в точности (вплоть до регистра) совпадать с именем его драйвера на сервере. 

Ещё можно попробовать установить следующие пакеты:
1. MicrosoftFixit50180
2. WindowsXP-KB972422-x86-RUS

А ещё лучше использовать пакет ScrewDrivers и подобные, но это довольно дорого.

Насчет ScrewDrivers вот что мне ответили на одном известном форуме: "Дорого, потому что нет лучшего решения. Всё что ты выше написал - мура, проверенная многолетней еблей с печатью. " Так что решайтесь =)

Информация отсюда:
1. http://ru.wikipedia.org/wiki/Remote_Desktop_Protocol
2. http://www.gotdotnet.ru/blogs/blackhawk/1243/
3. http://www.tonk.ru/support/faq/printers02/
4. http://www.tonk.ru/support/faq/printers01/ 
    http://www.osp.ru/win2000/2001/02/174688/


UPD:
Большинство принтеров будут корректно работать в терминальной сессии, если разрядность операционных систем сервера и клиента совпадает. То есть если на серве Windows 2008R2 (а она выпускается только в 64-разрядной редакции), а на клиенте - Win XP 32, то 90%, что принтер в терминале печатать не будет. А если на клиенте Windows 7 x64 - 90%, что проблем не будет.
 Возможно, ещё играет роль семейство ОС (т.е. Win7 не будет печатать на WinServ2003 и наоборот). Хотя это лишь догадки - не проверял. Если кто знает - добро пожаловать в комменты!
Если клиент не в локальной сети, а в интернете - поднимайте VPN.
Ещё можно почитать здесь.

8 комментариев:

  1. У меня, например, почти не возникает проблем при печати по RDP server 2003, разве что с экзотическими принтерами. Но, правда и сеть у меня без доменов.
    Вот только недавно мудохался, чтобы печать на принтер, который находится в другой локальной сети от клиента.

    Короче вот советы, которыми могу поделиться для печати по RDP
    если у вас небольшая сеть (до 20 компов) и без заморочек с доменами

    1) Установите дрова принтера на клиент к которому физически подключен принтер, протестируйте печать на прямую с компа (без RDP)
    2) Разшарьте принтер на клиенте чтобы он был доступен всем, установите полные права для всех пользователей на этот принтер
    2) Установите на сервер драйвер принтера (такой же как и на клинете, только для соответсвующей ос) на который будете печатать
    3) При подключение к серверу терминалов, проверьте, чтобы стояла галочка возле "принтеры" на вкладке локальные ресурсы

    4) проверьте печать с компа по RDP к которому подключен принтер, для начала пробуйте под учётной записью админа. по идее принтер должен подхватиться и с клиента сразу печатать без проблем. Если не печатает, смотрите вкладку порты в настройках нужного принтера на сервере, бывает, что не правильно подхватывает порт из-за этого не печатает вообще или печатает не туда куда надо.
    4.1) драйвер на клиенте и на серевер должен совпадать (у меня было на клиенте драйвер на HP PCl 5 а на сервере PCL 6.0 из-за этого не работало)

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

    6) Немного сложнее если у Вас клиент находится в одной локальной сети, а принтер в другом конце города подключён к клиенту. Можно конечно поднять VPN (локальную сеть по интернету) или настроить Hamachi, чтобы объединить две локальные сети в одну, но по мне это геморно… В таком случае алгоритм действий такой же, только с одним отличием на сервере в настройках принтера нужно его розшарить и открыть права на принтер для всех пользователей, это на вкладке безопасность (а не только на клиенте). Юзеру который будет печать дать права группы оператор печати. Потом зайти под юзером который будет использовать принтер и установить нужный принтер как сетевой. К слову сказать, у меня под правами админа сразу печатает, долго не мог понять почему юзеры с правами обычных пользователей не видят удалённый принтер.

    Вот такие бубны ))

    ОтветитьУдалить
  2. Анонимный12.10.2016, 22:38

    Статья написано криворуким админом. Работает все и всегда. надо только правильно руки приложить. Даже через EasyPrint работают все принтеры с ПРАВИЛЬНО и ПОЛНОСТЬЮ установленными родными дровами, установленным Net.Framework 3.51 и клиентом 6.1 (лучше 7). Как пример - Canon LBP800. При правильных дровах работает с машины XP x32 в терминалах 2008R2 и 2012R2

    ОтветитьУдалить
    Ответы
    1. ...написал человек из 2016 года к статье 2011

      Удалить
    2. Здравствйте, помогите пожалуйста с решением проблемы. В свойствах перенаправляемого принтера нельзя выбрать оригинальный драйвер принтера, а там стоит Remote Desktop Easy Print.
      Как поменять на оригинальный драйвер?

      Удалить
    3. Какое то собрание домыслов и суеверий. Феерия мракобесия.

      Удалить
  3. Анонимный19.10.2016, 3:15

    "Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров"
    Параметр "Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола" перевести в состояние "Отключено"

    А лучше всего освоить ScrewDrivers и наслаждаться !!!!

    ОтветитьУдалить
  4. Анонимный20.07.2017, 4:08

    Вот говорите работает все и всегда. Но вот вопрос: WIn2008r2 домен принтеры подключены локально без сервера печати. То есть при заходе по RDP пользователь заходит под своим доменным именем и печатает всякую штуку. Но то и дело бывает отваливается печать и помогает только удаление папки пользователя с терминального сервера. При повторном входе пользователя на сервер автоматически создается новая папка пользователя на этом сервере и все прекрасно начинает работать, до поры до времени. Так вот, как бы избавиться от удалений папок пользователей и все таки решить проблему?

    ОтветитьУдалить
  5. Есть решение... для сервера 2008 можно использовать RemoteFX... т.е. перенаправить само устройство, подключенное по USB, тогда сервер увидит подключенный локально принтер как будто вы его подключили кабелем... а на сервере уже установить драйвер стандартным образом. Таким же образом можно пробросить и ключ-1с, и даже встроенную веб-камеру в ноутбуке и использовать ее в скайпе через RDP...

    ОтветитьУдалить