Печать по rdp на локальной машине

Как решить проблемы подсистемы печати в терминальном сервере

Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.

Подробности под катом.

Вместо Intro

Наверняка, почти каждый системный администратор, работающий с Windows и, в частности, с терминальным сервером, сталкивался с проблемами печати.
Разрывается телефон, у всех одна и та же проблема: «Нажимаю на печать — ничего не происходит!». Идем смотреть логи и видим следующую картину:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Знакомо? Никаких подробностей, ничего — гадайте, господа администраторы! На форумах в интернете полно вопросов по этой теме и очень мало полных, структурированных ответов. Что ж, попробуем собрать в кучу все варианты решений.

Причины и решения

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

А теперь пройдемся подробнее по всем пунктам. Для начала установим на наш терминальный сервер роль «Службы печати и документов».

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Это позволит нам удобно управлять драйверами и принтерами, установленными в системе.

Идентичные драйвера

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

Изоляция драйверов

В Windows 2008 появилась замечательная возможность изоляции драйверов принтера. Теперь драйвер принтера подгружается не Spoolsv.exe а специальным процессом PrintIsolationHost.exe. При «вылетании» драйвера принтера «слетает» только один экземпляр PrintIsolationHost.exe, а сама служба «Диспетчера печати» остается работоспособной, что, как понимаете, весьма влияет на настроение пользователей 😉

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

TS Easy Print

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Далее, необходимо очистить наш сервер от лишних драйверов принтеров. Это можно сделать в менеджере роли «Службы печати и документов».
Внимательно удаляйте драйвера! Необходимо оставить в живых такие вещи, как «Remote Desktop Easy Print» и «Microsoft XPS Document Writer». Именно они и отвечают за передачу печати на клиента.

Решения сторонних компаний

Избавиться от проблемы падающего спулера призваны такое ПО как, например, ScrewDrivers (сайт). Оно предоставляет клиент-серверную архитектуру.
Сервер ScrewDrivers — это компонент, который необходимо установить на серверы, на которых планируется использовать печать в терминальном сеансе. Клиент ScrewDrivers должен быть установлен на рабочих станциях. Именно этот компонент позволяет создать на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам пользователя.
В целом, напоминает Easy Print, но не бесплатно (впрочем, есть лекарства ;).

Источник

SCREWDRIVER. Где скачать и как настроить?

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

SCREWDRIVER. Где скачать и как настроить?

В данной статье мы рассмотрим проброс принтера через RDP (удаленный рабочий стол) используя программное обеспечение ScrewDriver. Так как стандартные средства Windows не всегда справляются с поставленной задачей корректно.

В современных локальных сетях все чаще стали использовать технологию удаленного рабочего стола или RDP. Это позволяет нескольким пользователям работать с программой, установленной на сервере и нет необходимости устанавливать её на каждом компьютере. Наиболее распространенным вариантом использования является подключение пользователей к программе 1С.

И вроде бы все отлично, но, у данной реализации часто возникают проблемы с принтерами. Когда пользователь пытается распечатать документ на принтер, подключенный к его физической машине или на принтер своего отдела.

Как правило, данная проблема периодически возникает у разных пользователей, когда они отправляют документ на печать, но принтер предательски молчит или его вообще нет в списке принтеров. Что нервирует как пользователей, так и вас.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Сначала я перезагружал службу «Диспетчер печати» на сервере. Но, когда проблема получила массовый характер и приходилось перезагружать службу по 3-5 раз в день, то нужно было найти какое-то адекватное решение.

И помогла мне в решении данной проблемы программа ScrewDriver. Именно о настройке ScrewDriver и пойдет речь в данной статье.

Где скачать ScrewDrivers Server и ScrewDrivers Client?

Установка и настройка ScrewDrivers Server на сервере терминалов RDP

Программа ScrewDriver предназначена для проброса пользовательских принтеров в терминальные сеансы RDP. Имеет высокую надежность, гибкие настройки и очень простой интерфейс.

Установка «ScrewDrivers Server» крайне проста. Вам не нужно указывать никакие настройки. После завершения установки программа закроется и для того чтобы зайти в настройки сервера нужно зайти в «Панель управления \ ScrewDriver Server v6 x64».

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Открыв приложение, мы увидим приветствие и все настройки.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Вот что обозначает каждая из основных настроек программы:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

В данной закладке выбираем обозначение принтера для удобства администрирования. В нашем случае domain name:№session(model printer default)

Этих настроек достаточно, для корректной работы серверной части программы!

Установка и настройка ScrewDrivers Client v.6 на клиент терминалов RDP

Далее необходимо выполнить настройки на каждой клиентской машине, которая будет подключаться к терминальному серверу. Чтобы максимально быстро установить клиентскую часть программы можно воспользоваться групповой политикой (если у вас доменная сеть). Более подробно о работе групповых политик и установке через них различного программного обеспечения я рассказывал в видеокурсе «Групповые политики Windows Server»

Для того чтобы зайти в настройки клиентской части, так же нужно перейти во вкладку «Панель управления \ ScrewDrivers Client».

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Настроек в клиенте поменьше, чем на сервере и ничего сложного в них нет. Я оставил все по умолчанию, кроме одного «Printers».Этот параметр определяет принтер, который будет основным в терминальной сессии. Переключателем выбираем нужный принтер.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

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

На данный момент, эта система меня еще не подводила и не заставляла перезагружать какие-либо службы. Все работает как часы!

Источник

Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Вопрос

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Имеется сервер с Windows Server 2012, рабочая станция с Windows 7, принтер Samsung CLX-2160 подключённый через USB к этой рабочей станции.

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

Прошу помочь с настройкой печати данного принтера через RDP, или подсказать список принтеров работающих в терминальном режиме с Windows Server 2012.

Все ответы

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Что происходит если отправить документ на печать из сервера при локальном доступе?

Вариант 1. Откройте общий доступ к принтеру и подключите его к серверу, сопровождая процедурой обновления драйверов данного устройства. Убедитесь в том, что права на печать добавлены для необходимых пользоватетей.

Вариант 2. Перезапустите службу «Диспетчер печати» и переустановите принтер на сервере.

Вариант 3. В свойствах подключения к рабочему столу, вкладка «Локальные ресурсы» проверьте установлен ли чекбокс на пункте «Принтеры»

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

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

Вот по этому вопросу я хочу получить ответ.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Всё выше Вами описанное было сделано, результат равен нулю.

Остаётся открытым вопрос или о совместимости данного принтера с данной ОС Windows Server 2012, или же о неких дополнительных действиях, которые нужно произвести.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Есть топик на похожую тему Тут

Попробуйте отключить Microsoft’s Easy Print Remote Desktop driver

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Вопрос остаётся открытым.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Что происходит если отправить документ на печать из сервера при локальном доступе?

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Попробуйте отключить Microsoft’s Easy Print Remote Desktop driver

Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Да. Версия Windows стоит русская.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

у меня аналогичная проблема:

Источник

База знаний

Проблемы с печатью из RDP или Терминальный сервер Windows VS Принтеры

То, что RDP и принтеры понятия хоть и совместимые, но плохо, известно давно. Но функционал этот всегда был востребован и будет востребован в будущем. Проблемы печати с терминальных серверов Windows уже много лет являются головной болью для большинства системных администраторов и ИТ-менеджеров. В рамках данной статьи мы рассмотрим основные методы «борьбы с глюками» печати из сессий удаленных рабочих столов.

Сразу оговорюсь, что в рамках этой статьи печать из терминальных ферм на Citrx’е не рассматривается.

Большинство проблем с печатью на терминальных серверах вызваны установленными на них драйверами принтеров.

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

Итак, перейдем теперь к решениям.

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

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

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

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

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

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

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

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Выполнив данные незатейливые действия, мы сильно разгрузим спулер, резко снизив частоту его падений, уберём «деревянный костыль» в виде bat-ника и, как результат, повысим лояльность пользователей и руководства к ИТ :-).

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

Поэтому помимо изоляции драйверов в Windows Server 2008 также появилась ещё более ценная функция под названием TS Easy Print (Remote Desktop Easy Print). О ней пойдет речь ниже.

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

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

Главным достоинством этого решения является то, что в принципе не нужно устанавливать драйверы для каждого устройства на терминальный сервер. Вместо этого используется унифицированный драйвер Remote Desktop Easy Print и, соответственно, все операции по печати идут мимо спулера и обслуживаются напрямую клиентской машиной. Благодаря этому значительно повышается стабильность работы, как и самого спулера, так и терминального сервера в целом.

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

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

После того, как политика активирована, можно удалить лишние драйверы принтеров с сервера.

Удалить лишние драйверы можно с помочью панели управления.

Сразу же оговорка. При печати, используя TS Easy Print могут возникнуть проблемы с отображением шрифтов (т.е. «иероглифы»). Решается проблема просто – нужно установить последнюю версию NET Framework на клиенте.

Дополнительно следует также отметить, что решить проблему «виснущего и вечно падающего» спулера можно также используя коммерческий продукт ScrewDrivers.

Клиентский компонент ScrewDrivers создает на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам на клиентской машине. Решение вполне стабильное и проверено годами во множестве компаний. Но у него есть один недостаток – оно в отличие от TS Easy Print платное :-).

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

Источник

Перенаправление принтеров в терминале windows

Автор статьи не я, позаимствовано у http://lpine.org/

Перенаправление принтеров в терминалах (MS Terminal Services & Remote Desktop Services)

Часть первая, теория

Часть вторая, решение проблем

Что такое печать в терминальных службах

В 90-х Майкрософт разработал специальную роль для Windows NT 4.0 Server под названием Terminal Server. Роль оказалась популярной и востребованной. Функционал у неё довольно простой: используя специальное ПО mstsc.exe («Подключение к удалённому рабочему столу»), входящее в поставку всех современных версий и редакций клиентских ОС Windows (кроме, пожалуй, Windows Phone), можно подключаться по сети к удалённому серверу и видеть рабочий стол удалённого сервера и управлять им при помощи мышки и клавиатуры как своим собственным.

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

В отличие от множества других методов транспортировки изображения по сети (VNC, RAdmin, DameWare, Teamviewer, AMMYY Admin и проч.), майкрософтовские терминалы не гонят отсканированную с видеокарты графику, вместо этого они заново отрисовывают все окна на стороне клиента, пользуясь Windows API и проч, передавая по сети только текстовые команды типа «отрисовать такое-то окно такого-то размера с таким-то градиентом». В результате требования по ширине канала для работы очень низкие, и очень высокая скорость работы в стандартных оконных интерфейсах Windows. Впрочем, отличную от окошек графику терминалы гонят также, как и конкуренты, поэтому в терминалах всегда начинаются тормоза при попытке смотреть/редактировать видео и графику.

Протокол, по которому осуществляется передача данных с сервера терминалов на клиентскую рабочую станцию, называется RDP. С выходом OS Windows Server 2008 R2 терминалы переименовали в Microsoft Remote Desktop Services (службы удалённых рабочих столов). Но, как это обычно бывает в Майкрософт, переименование коснулось только поверхностного слоя, глубоко же внутри функции, ключи реестра и проч. по-прежнему называются на Terminal Services. Кстати, иногда бывает даже такое, что при троекратном переименовании продукта на самом поверхностном слое продукт имеет третье название, чуть глубже — второе, более старое, а на самом низком уровне абстрагирования — первое, ещё более старое, именно так обстоит дело с продуктом Forefront TMG, впрочем, не будем отвлекаться.

Существует и более серьёзная версия терминалов, которой занимается компания Citrix. Это решение для крупных компаний, держащих т.н. «фермы» терминальных серверов. За это решение платятся дополнительные деньги сверх уже заплаченных за лицензии на майкрософтовские терминалы, но оно серьёзно облегчает работу, т.к. позволяет централизованно управлять всей фермой, централизованно ставить софт и его настраивать, по-умному раскидывать юзеров между членами «фермы» и т.п. Это решение переименовывалось ещё большее количество раз, начиная от Citrix WinFrame, через MetaFrame, через Citrix Presentation Server, до Citrix XenApp. Протокол для этого решения называется ICA, однако, внутри он является тем же RDP (и потому для XenApp верно многое из того, что верно для RDP и наоборот), исходные коды которого MS лицензирует Цитриксу, без чего XenApp был бы, скорее всего, невозможен и Цитриксу пришлось бы довольствоваться унылым, тормозным и требовательным к ширине канала методом транспортировки десктопа, аналогичным тем, которые используются Radmin, Teamviewer и так далее.

Удалённый десктоп это прекрасно, но рано или поздно юзер сталкивается с тем, что из удалённых приложений ему нужно печатать на принтер. При этом редко кому и когда нужно печатать на принтер, который подключен к удалённому серверу терминалов, который от юзера находится нередко в сотнях и тысячах километров. Печатать нужно на свой, локальный принтер. Для решения этой задачи предлагались в разное время разные методы, все они были не без недостатков, порождающих различные проблемы, которые мы тут и постараемся исчерпывающе описать и предложить соответствующие им решения. Эти методы в разных контекстах называются «printer mapping», «printer redirection», « Easy Printing» а по-русски «перенаправление печати», «сопоставление принтеров» и т.д.

Поскольку аудиторией этого текста являются русскоязычные юзеры и админы, то большинство скринов будет на русском, тем более что в подавляющем большинстве организаций в России терминальные серверы стоят русифицированные, т.к. на них работают пользователи. Среди back-end серверов доля нерусифицированных, конечно, выше чем среди терминальных серверов.

1. Как включить печать в терминальных службах

Очевидное (опытные админы могут пропустить), а именно, как включить перенаправление печати, если оно не включено. На стороне клиента для подключения к серверу терминалов используется программа mstsc.exe, она же «Подключение к удалённому рабочему столу».

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

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

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

На стороне сервера нужно запустить tscc.msc (в 2008 и выше tsconfig.msc), на RDP-Tcp нажать правую клавишу мыши, выбрать «Свойства» и в закладке «параметры клиента» убедиться, что НЕ стоит галка на отключить «Сопоставление принтеров». Это действие требует наличия прав администратора на сервере терминалов.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

На этом всё, после выполнения этих нехитрых требований по мнению Майкрософт Вы можете печатать из удалённого рабочего стола на свой локально установленный принтер. В этом скриншоте показан удалённый рабочий стол, на который «пробросился» локально установленный принтер Samsung:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Не пробросился? Читаем дальше.

2. Групповые политики

Бывает и такое, что галка на отключить «сопоставление принтеров» на предыдущем скриншоте стоит, а убрать её нельзя, т.к. надпись серая, или, говоря в англоязычной программистской терминологии, этот «checkbox» is «greyed out»:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Такое бывает, если настройками сервера терминалов управляют групповые политики (group policies). Если сервер терминалов является членом домена Windows (он же Active Directory Domain Services), а скорее всего это так, то для управления групповыми политиками нужно быть администратором домена. Для установки соответствующих настроек администратору домена следует на контроллере домена запустить gpmc.msc (если её нет, то dsa.msc) и открыть интерфейс редактирования политики, относящейся к данному терминальному серверу. Если же сервер терминалов не входит в домен и является т.н. «stand-alone» сервером, то на нём также есть локальные групповые политики, которые можно отредактировать при помощи gpedit.msc. Интерфейс в обоих случаях одинаковый, поэтому инструкции подойдут для обоих случаев:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

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

3. Схемы «родной драйвер» и «драйвер подстановки»

Если настройки по перенаправлению принтеров выполнены как указано выше, то принтер будет перенаправляться ТОЛЬКО в том случае, если на терминальном сервере ТАКЖЕ установлены драйверы на принтер того производителя и той модели, который стоит у юзера локально. В противном случае перенаправляемый принтер на сервере терминалов скорее всего создан не будет, а в журнале событий «Система» появится сообщение от провайдера TermServDevices с кодом 1501 и содержанием, указывающим на то, что на терминальном сервере не установлен соответствующий драйвер.

Поэтому для работы перенаправления печати с сервера терминалов на локальный принтер следует ставить драйвер принтера и на локальном ПК, с которого осуществляется подключение, и на удалённом сервере, на который осуществляется подключение.

Но, такая схема работы имеет очевидные недостатки. Например, туговато приходится администраторам серверов, к которым подключаются сотни людей у многих из которых установлены самые разные принтеры. Такой сервер терминалов рано или поздно превращается в помойку из десятков и сотен драйверов принтеров, которые могут конфликтовать друг с другом и в конце концов вообще угробить всю подсистему печати целиком (о том, как её восстанавливать см. ниже главу про cleanspl). Кроме этого не на все принтеры, особенно принтеры для диапазона SOHO, существуют драйверы для серверных операционных систем, а драйверы для десктопных систем (таких как XP/Vista/7/8) часто не встают на соответствующие им серверные ОС (такие как 2003/2008/2008R2/2012). Ну и в конце концов установка драйверов это муторный процесс, которым администратору заниматься неохота.

Слава Гейтсу, существует и альтернативное решение, а именно, подстановочный драйвер. Дело в том, что несмотря на различия, большинство принтеров имеет много общего и, невероятно, но факт, на них можно печатать с использованием унифицированного PCL или PS драйвера. Подстановку унифицированного драйвера можно задать только с помощью групповых политик, поэтому для установки соответствующих настроек администратору следует на контроллере домена запустить gpmc.msc (если её нет, то dsa.msc) и открыть интерфейс редактирования политики, относящейся к данному терминальному серверу. Если же сервер терминалов не входит в домен и является т.н. «stand-alone» сервером, то на нём также есть локальные групповые политики, которые можно отредактировать при помощи gpedit.msc. Интерфейс в обоих случаях одинаковый, поэтому инструкции подойдут для обоих случаев:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Если включить политику «Поведение сервера терминалов при выборе подходящего драйвера принтера» и в следующем окошке выбрать подстановку PCL и/или PS драйвера, то при подключении к серверу терминалов у юзера будет автоматически создаваться перенаправленный принтер, даже если на сервере соответствующий драйвер не установлен.

Увы, этот метод имеет своим недостатком то, что подстановочный драйвер сработает не для всех принтеров. Для большинства принтеров он работает, но для некоторых нет. Прежде всего этот метод не подойдёт для т.н. host-based драйверов принтеров, т.к. они не являются PCL- или PS- совместимыми. Иногда заставить печатать host-based принтеры всё-таки можно, установив на сервер драйверы для этих моделей, но некоторые модели не имеют драйверов для серверных OS. В ряде случаев эта проблема решаема, см. далее главу о Tricerat Screwdrivers. Подстановочный драйвер, если посмотреть на него внимательно, является драйвером HP DeskJet 500:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

С выходом ОС Windows Server 2008 Майкрософт представил решение Easy Printing, которое позиционировалось как панацея для многочисленных проблем с печатью в терминалах. Идея заключается в создании специального перенаправленного принтера с Easy Print драйвером, который печатает в XPS (Майкрософтовский открытый формат документов, призванный заменить pdf, но успеха не снискавший), а XPS затем переправляется на сторону клиента, где благополучно печатается на локальный принтер как XPS документ. В теории такой метод печати решил бы все проблемы, но на практике то ли Майкрософт этот метод до ума не довёл, то ли на него надавили производители принтеров и/или альтернативных решений для печати в терминалах, но Easy Printing проблем с печатью так и не решил: всё осталось как и раньше: подключаешь к терминальному серверу нового клиента и надеешься на то, что его принтер удастся «подружить» с терминалами, своего рода «connect and pray». Как бы то ни было, Easy Printing включается также через групповые политики, там же, где и драйвер подстановки:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

4. Схема со Screwdrivers

Поскольку проблем с печатью на терминалах всегда была адовая прорва (по данным некоторых ИТ аутсорсеров, проблемы с печатью это наиболее часто встречающиеся проблемы), свою нишу нашли компании, которые делали процесс печати из терминалов более удобным, а иногда и вообще его просто «делали», когда иначе печатать было просто невозможно.

Решение Tricerat Screwdrivers платное. Оно состоит из серверной части (ставится на сервере терминалов) и клиентской части (есть msi пакеты, удобные для масс-деплоймента через ГП или SCCM). Особых настроек не требует и обычно всё прекрасно работает с настройками по-умолчанию после установки на сервере и на всех клиентах. После простой установки обычно клиент оказывается способен печатать на свои принтеры, на которые не удавалось настроить печать без screwdrivers. Поскольку этой статьи тогда ещё не было написано, а спецов по терминальным серверам не так много, то настройка терминальной печати и решение проблем с ней могло затягиваться на часы и дни. Поэтому многие приняли разумное решение по радикальному решению проблем с терминальной печатью: купить и задеплоить Screwdrivers. Кроме собственно печати Screwdrivers позволяют осуществлять тонкий тюнинг терминальной печати, например, регулировать ширину канала для печати:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Но… не всё оказалось так просто. Дело в том, что существуют некоторые, особо жадные производители принтеров (не будем говорить кто, хотя это Hewlett-Packard), которые СПЕЦИАЛЬНО (это не факт, а моё оценочное суждение) отрезают поддержку печати в терминалах на принтерах, позиционирующихся для рынка SOHO. Это всё делается, конечно, для повышения продаж, т.к. решение HP для случаев непечати в терминалах простое: покупайте новый, более дорогой девайс. Такие модели принтеров зачастую не печатают даже со screwdrivers и в этих случаях ничего сделать невозможно, только менять принтер на совместимый с терминалами. О том, как определить совместимость принтера с терминальной печатью рассказываем в следующей главе.

5. Совместимые с терминалами принтеры

Как правило, все современные принтеры любых производителей ценой хотя бы от 5 т.р. совместимы с печатью в терминалах, за исключением Hewlett-Packard. Если Вы верны традициям печати этой компании и хотите приобрести принтер непременно этого производителя, то существует специальный, регулярно обновляемый документ производства Citrix & HP, который легко ищется в Сети по ключевым словам «Citrix XenApp HPPrinters supported» (ссылку намеренно не даю, т.к. постоянно выходят новые версии и меняется URL). Здесь нам поможет информация из первого абзаца, а именно, тот факт, что XenApp есть надстройка над майкрософтовскими терминалами, позволяет с определённой долей уверенности утверждать, что принтеры, поддерживаемые в среде XenApp, скорее всего также будут печатать и в среде MS Terminal Services & MS Remote Desktop Services. Автору пока неизвестно ни об одном случае отклонения от этого правила, и принтеры, поддержка которых заявлена в этом документе, оказывались печатающими и в майкрософтовских терминалах.

Помимо HP, Citrix также поддерживает аналогичные списки и для устройств некоторых других производителей, например, для принтеров Xerox. По мнению автора, сам факт существования таких списков у Цитрикса свидетельствует о том, что производители, для устройств которых составляются такие списки, поддерживают печать в терминалах ПЛОХО. Именно поэтому Цитрикс и вынужден эти списки составлять и публиковать. Отсутствие таких списков в отношении устройств Samsung или Kyocera, по мнению автора, свидетельствует о том, что с печатью в терминалах у этих устройств всё в порядке. Автору, пожалуй, ни разу не доводилось встречать хоть сколько-нибудь серьёзных устройств (исключая понятные случаи вроде переносных персональных принтеров, всяких там древних струйников и т.п.) этих производителей, в которых терминальная печать была бы невозможна.

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

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

6. Печать через VPN

Настроить печать на перенаправляемый принтер в терминалах так и не удалось? Есть гарантированно рабочее решение, которое будет работать с любым принтером, на который можно печатать через «службу доступа к общим папкам и принтерам», она же SMB. Для этого локальный принтер следует «расшарить» для общего доступа и установить VPN-канал между клиентским ПК и сервером. Самые простые варианты это RRAS на сервере и PPTP-клиент (встроенный в Windows) на клиентском ПК или OpenVPN. После установки канала необходимо просто подключить печать по сети на расшаренный на клиентском ПК принтер стандартными средствами, убедившись, что прохождению траффика SMB не препятствует firewall и прочее.

Таким же способом к серверу терминалов через VPN можно подключать сетевые принтеры, через «Стандартный порт TCP/IP», для чего нужно обеспечить прохождение порта TCP 9100, используемого для печати на сетевые принтеры.

Единственная возможная проблема с этим способом заключается в отсутствии драйверов для принтера под серверную OS, на которой развёрнуты службы терминалов. Если п. 2 и 3 также не помогают, то в этом случае точно поможет только приобретение нового принтера.

Часть II

1. Типы проблем с печатью в терминалах

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

а) Локальные проблемы с печатью. Для их решения нужно прежде всего убедиться, печатает ли принтер локально. Может, у него бумага кончилась или ещё что. Проблемы этого типа в настоящем руководстве не рассматриваются

б) Проблемы с отсутствием драйверов на сервере терминалов: никакие принтеры не перенаправляются, кроме тех, драйверы на которые входят в стандартную поставку Windows. Для решения проблем такого типа необходимо устанавливать драйверы на сервере и/или настраивать поведение сервера при отсутствующих драйверах (Easy Print и драйвер HP DeskJet 500), см. часть I, п. 2 и п. 3

в) Проблемы с отсутствием печати на успешно проброшенный принтер. Метод решения такого типа проблем следующий: смотрим какой драйвер подцепился к проброшенному принтеру, Easy Print или DeskJet 500, пробуем их менять местами; если не помогает, то ставим на сервер родной драйвер (если их больше 1, то последовательно пробуем все, т.к. в случае HP бывает, что старые драйверы работают, а в новых поддержка терминалов уже отрезана) и убеждаемся, что к проброшенному принтеру подцепился именно родной драйвер; если это не помогает, то продаём клиенту и разворачиваем Tricerat Screwdrivers, предварительно протестировав возможность печати через него в Trial версии; если это не помогает то увы, только замена принтера или печать через VPN, см. часть I, п. 6

Редко возникающие проблемы

2. Проблемы со спулером

Служба Spooler, она же spoolsv.exe, он же «Диспетчер очереди печати» тупо останавливается без объяснения причин. При рестарте опять останавливается через несколько секунд. Такое часто бывает из-за кривых драйверов на дешёвые принтеры и часто случается на терминальных серверах, на которых используется схема без драйверов подстановки, т.е. устанавливаются драйверы на все модели принтеров, установленных у клиентов. Также могут быть и другие варианты, типа ни один принтер не пробрасывается, хотя драйверы стоят и т.п.

Поскольку указателя на то, из-за чего именно вылетает spooler в таких случаях обычно не бывает, то проще и быстрее всего полностью зачистить всю подсистему печати сервера и заново выполнить настройки печати и поставить драйверы. Для этого пригодится утилита cleanspl.exe из Resource Kit for Windows Server 2003. Запускаем, соглашаемся, утилита полностью выпиливает и зачищает всю подсистему печати сервера. В 2008 и выше не поддерживается, для этой ОС Майкрософт предлагает такое решение: http://support.microsoft.com/kb/2000007

После действия cleanspl.exe мониторы печати нужно восстанавливать вручную с новой аналогичной операционной системы:

Типовой файл реестра прилагается к этому документу. Достоверно известно, что для работы перенаправления печати в терминал требуется USB Monitor, см. ч. II, п. 4.

3. Драйвер перенаправления

Не создаются перенаправляемые принтеры и в «диспетчере устройств» в «системных устройствах» отсутствует специальное устройство «перенаправитель устройства сервера терминалов», он же «remote desktop device redirector bus», в 2003 выглядит так:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

В 2008 R2 выглядит так:

Печать по rdp на локальной машине. Смотреть фото Печать по rdp на локальной машине. Смотреть картинку Печать по rdp на локальной машине. Картинка про Печать по rdp на локальной машине. Фото Печать по rdp на локальной машине

Переставлять драйвер редиректора, inf-файл поставляется вместе с системой, для установки можно воспользоваться утилитой devcon.exe (http://support.microsoft.com/kb/311272):

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

4. Реестр

Не перенаправляются никакие принтеры. Из-за неверно выставленных прав на реестр или по иным причинам не выставлена правильно или отсутствует запись реестра.

В ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd создать запись типа DWORD fEnablePrintRDR и установить её в 1.

В ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\USB Monitor создать запись типа «строковой параметр» Driver и установить её значение в usbmon.dll (сам файл правильной версии должен присутствовать в %windir%\system32)

5. Визард устранения проблем от Майкрософт

Мне ни разу не помог, но на всякий случай Terminal Server Printer Redirection Wizard Tool

6. Если больше ничего не помогает, а печатать принтер должен

Стандартные проблемы: переставить последний сервис-пак и накатить обновления, выполнить sfc /scannow, убедиться что принтер таки может печатать на другом таком же терминальном сервере с такой же OS и т.п.

7. Печать на медленных каналах

Особенно касается всяких допотопных DSL модемов, 3G-модемов и т.п. Т.к. для работы терминала не требуется широкополосного доступа, то у пользователя может возникнуть ощущение, что с его интернетом всё ОК, до тех пор, пока он не начнёт печатать. Задание на печать может занимать несколько мегабайт и на медленном канале печататься спустя десятки минут после отправки на печать. Если такое поведение для клиента неприемлемо, можно попробовать Screwdrivers, который позволяет сжимать траффик печати, либо убедить его приобрести нормальный интернет.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *