Печать из терминального сервера на Host Based принтера. (HP 1120 MFP; HP 1132 MFP)
К поиску данного решения сподвигла поблема с
печатью из терминального сервера Windows Server 2008 r2.
При использовании
родных драйверов от принтеров, установленных
на терминальный сервер, мы сталкивались с постоянным зависанием и
отпадением спулера, что приводило к исчезновению принтеров у клиентов. Переход
на easy print решает проблему со спулером, но возникает новая,
некоторые принтеры не печатают через esyprint.
Задача:
Убрать зверинец драйверов с сервера.
Настроить печать через easy print,
что бы исключить проблемы связанные с драйверами установленными на сервере.
Выводить печать на принтера, которые не
работают с easy print.
Итак, что надо для того что бы
работал easy print:
- .Net 3.0 Sp1 или выше, установленный
на клиенте;
- обновленный клиент РДП на компьютере
пользователя;
- установленный XPS принетер на
компьютере пользователя;
Описание основных настроек печати в терменале
можно прочитать тут http://technet.microsoft.com/ru-ru/library/cc772270(v=ws.10).aspx
Как работает easy
print http://blogs.technet.com/b/askperf/archive/2008/02/17/ws2008-terminal-services-printing.aspx
Из нашего парка не печатают принтера HP 1132
MFP и HP 1120 MFP, их много, поэтому покупать другую модель не выгодно и
дорого.
Из чтения статей, пришли к выводу, что данные
принтера не содержать поддерживаемые языки печати, а являются Host
Based принтерами. Полный перечень таких моделей можно увидеть по ссылке http://www-01.ibm.com/support/docview.wss?uid=nas1ba0863cfa6463903862569c10078c903. Из за отсутствия какого либо языка печати, XPS writer
не может отправить задание на принтер.
Для печати из терминального сервера на
проблемные принтера решили воспользоваться виртуальным принтером, с
поддержкой языка Post Script, который будет перенаправлять печать на локальный
принтер.
Есть достаточно старая статья, как настроить
печать подобным образом. Основную идею для реализации решения
подчерпнули из нее. http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html
Рецепт:
Для настройки нам потребуется:
GSScript http://ghostscript.com/
Радует что все версии достаточно свежие, и
поддерживают windows 7.
1. Устанавливаем RedMon, GSPrint, GSScript. Установка простая, Next-Next-OK
2. C настройкой привидеться немного повозиться. Для WinXp нет никаких сложностей, для Win7
необходимо будет обойти UAC. Все
действия по настройке выполняться с административными правами.
Что нам надо сделать, нам надо установить
локальный принтер на новый порт RPT1. Для этого в окне установки локального принтера,
выбираем создать новый порт Redirect Port
Если в Win7
вываливаться ошибка с кодом 0x0000001 при создании порта, значит у вас не
выключен UAC.
Для того чтобы не выключать контроль
пользователей, переходим в Панель управления, Администрирование и
запускаем управление печати «Run As Administrator» и уже тут создаем новый порт.
Далее выбираем драйвер принтера, нам
нужен драйвер принтера с поддержкой postscript, например
HP LaserJet 5100 PS. В итоге мы получаем виртуальный принтер.
3. Настраиваем конфигурационный файл GSPrint. В каталоге, где установлена программа создаем файл с
именем gsprint.cfg и следующим содержимым
-noquery
-printer
\\tkachenko-os\HP LaserJet Professional
M1132 MFP
-ghostscript
C:\gs\gs9.07\bin\gswin32c.exe
-sDEVICE=mswinpr2 -dBATCH -dNoCancel -dNOPAUSE -dSAFER -sPAPERSIZE=a4
-sOutputFile="%1" –
Имя принтера на который будет
перенаправляться печать указывается без кавычек со всеми пробелами. Если
принтер сетевой то указывается не имя принтера, прописанное в свойства принтера
в общем доступа, а реальное имя принтера на компьютере.
C:\gs\gs9.07\bin\gswin32c.exe – путь к программе GSScript. Во многих статьях кроме пути к программе, никакие другие
параметры не указываються, на одном из компьютеров без них не
работало, выскакивало окно с предложением выбрать принтер. Так что тут
методом подбора.
4. Настраиваем порт.
В свойствах порта виртуального принтера
необходимо прописать путь к программе GSPrint, выбрать
способ вывода Program handles output. В Arguments ставим
- . Если у вас Win7 не забываем ставить галочку Run as User.
Данных настроек обычно достаточно для успешной локальной печати и печати из
терминального сервера.
Если во время отладки у вас в логах появляется ошибка Can't open Windows GDI printer driver скопируйте ветку реестра текущего
пользователя [HKLU\Software\Microsoft\Windows NT\CurrentVersion\Devices] в ветку
реестра [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices].
При корректной настройке у вас должно печать
локально через виртуальный принтер и на терминальном сервере через проброшенный
виртуальный принтер.
Комментарии