Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   Принтер с 2008 на 2008 R2 (http://forum.oszone.net/showthread.php?t=182343)

ilich 06-08-2010 22:33 1468559

Принтер с 2008 на 2008 R2
 
Здравствуйте.
Проблема опять таки с принтером. Есть сетка со старенькими компами, которые посредством линукса перевожу в тонкие клиенты. Терминал на Windows Server 2008 R2.
Домен стоит на windows server 2008. На тонких клиентах работает утилита usbip, которая пробрасывает usb порт по tcp\ip на windows server 2008. Дело в том что эта софтина ставится на винду как виртуальный юсб хаб и дрова есть только под х32, поэтому и стоит на 2008. Так вот пробрасываю таким образом принтер Canon LBP3200, ставлю дрова на 2008й, все работает все хорошо. Но вот добавить этот принтер на 2008 R2 (от куда мне собственно и нужна печать) не получается в виду отсутствия драйверов под х64.
Требуется вариант решения, бесплатный, без покупки ПО, без замены принтеров и без замены серверных ОС.
Вариант в голове возник только 1, поставить виртуальный принтер на 2008R2, который будет складывать pdf в расшареную папку, а некий скрипт на 2008 будет проверять эту папку и отправлять на печать. НО какой то это кривой вариант. Может быть подскажите что нибудь умнее.
Заранее спасибо!

QRS 06-08-2010 23:50 1468601

Если есть возможность вносить изменения в тонкого клиента, имеет смысл настроить доступ к принтеру через LPR.
Еще вариант, подключать принтеры на местах через отдельный принт-сервер...

В обоих случаях печать будет идти за пределами RDP-сессии.

ilich 07-08-2010 20:35 1468993

Цитата:

Цитата QRS
Еще вариант, подключать принтеры на местах через отдельный принт-сервер... »

Использовать отдельные железки не получится, потому что драйвер CAPT:
Цитата:

В отличие от обычных принтеров, которые в основном используют собственную память для сжатия данных, растрирование задания на печать драйвером CAPT и сжатие данных системой SCoA выполняются ещё до отправки данных на принтер. Это снижает требования к памяти принтера и устраняет обычные проблемы с «торможением» его процессора.
Соответственно железки такие во первых не найдёшь, во вторых дорогие.

Цитата:

Еще вариант, подключать принтеры на местах через отдельный принт-сервер...
Вот тут по подробнее, т.к. я не знаю как сделать так чтобы 2008R2 не просил драйверов при подцеплении драйверов от принт сервера.

Я бы хотел нечто вроде виртуального принтера на windows 2008R2, который будет отдавать на драйвер принтера установленного на 2008. Клиент серверное приложение в общем. Или что нибудь в этом духе. В голове даже сложился план по написанию самому такого софта, но это оч много времени займёт, а у меня срок.

QRS 08-08-2010 18:24 1469443

Цитата:

Цитата ilich
На тонких клиентах работает утилита usbip, которая пробрасывает usb порт по tcp\ip на windows server 2008. Дело в том что эта софтина ставится на винду как виртуальный юсб хаб и дрова есть только под х32, поэтому и стоит на 2008. »

Я думал, что нет драйверов только для утилиты... а драйвера на принтер x64 оказывается тоже нет :(

Для указанного сценария подошел был RDP-клиент, совместимый с EasyPrint; но таковые под Linux мне, к сожалению, не известны :(

PS: если ставить виртуальный принтер, то лучше в XPS, а не PDF.

ilich 08-08-2010 19:43 1469508

Именно так, драйверов х64 нет ни для usbip ни для принтера.
EasyPrint очень сомневаюсь что удастся организовать и даже не рассматриваю его как вариант.

А решение так и не найдено... :(

ilich 09-08-2010 22:30 1470344

Нашел!!! :)
Вот оно

В принципе у меня печать заработала.

В mswinpr.rc написал следующее:

-IC:\gs\gs8.71\lib;C:\gs\fonts
-sDEVICE=mswinpr2
-dNoCancel
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="%printer%Canon LBP3200"

Однако каждый раз при печати выскакивает окно: Обнаружение диалоговых окон интерактивных служб.
Нажимаю показать окно и там виндовое окно выбора принтера. И ни как не могу от него избавится. :(

ilich 12-08-2010 09:12 1471953

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

vito89 25-09-2012 14:00 1994488

ilich, знаю что давно било но может подскажеш как сделал, а то ссилка не работает

ilich 27-09-2012 00:16 1995398

Привет.

Уже ни серверов, ни принтеров ни конторы нет :)
Но опыт то не пропьешь! Ох сколько я тогда намучился...
Просто изменили ссылку, а рецептик остался:
http://www.nixp.ru/articles/Рецепт-п...-из-Linux.html

В общем я тогда установил по этому рецепту виртуальный принтер на WIN 2008 для которого были все необходимые драйвера стареньких Canon и usbip.
Виртуальный принтер пересылал печать на Canon.
А виртуальный принтер, который определяется как HP LaserJet 4/4M PostScript расшарил для использования на WIN2008R2, т.к. для этого принтера драйвера есть всюду.
Но вот конкретики как я все это провернул, к сожалению уже не помню.

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

Надо наверное запостить, а то вдруг опять ссылку сломают:
читать дальше »
1. Предисловие

Перед нами стоит задача печати документов на Win-принтере (Canon MF3110) из Linux (ALT Linux Desktop 4.0.x; далее — ALD 4). Canon MF3110 подключен (USB-подключение) и настроен на Win-компьютере (Windows XP). На другом компьютере с Linux (стандартная установка ALD 4) настроена Samba. Оба компьютера входят в локальную сеть и видят друг друга.
2. Скачиваем необходимые программы

Для решения поставленной задачи я использовал следующий софт:
RedMon — Redirection Port Monitor (redmon17.zip [592,7 КБ] с www.cs.wisc.edu/~ghost/redmon/)
GhostScript for windows (gs8.61w32.exe [9,3 МБ] с www.cs.wisc.edu/~ghost/)

Этот софт понадобится для настройки виртуального (физически не существующего, но корректно распознаваемого в Linux, например, HP LaserJet 4M Foomatic/Postsript) принтера на Win-компе, на который будем отправлять с Linux-компьютера (через Samba) задания, а он в свою очередь будет их «перенаправлять» (печатать) на реальный Win-принтер (Canon MF3110).

P.S. Не знаю, почему авторы других статей на эту тему рекомендовали дополнительно устанавливать еще и GSView — поставленная задача вполне решается предлагаемым минимумом софта.
3. Устанавливаем программное обеспечение

Здесь все операции выполняются на Windows-компьютере.
Разворачиваем Redirection Port Monitor redmon17.zip, например, в каталог: c:\redmon
Выполняем его установку: c:\redmon\setup.exe
Выполняем установку GhostScript: gs8.61w32.exe. По умолчанию GhostScript устанавливается в c:\Program Files\.


Внимание! Мы установим gs8.61w32.exe в c:\gs\ и далее будем отталкиваться от этого.

4. Устанавливаем виртуальный принтер

Все операции по-прежнему выполняются на Windows-машине.
Открываем Блокнот (а еще лучше — редактор в Far) и создаем файл настроек параметров c:\gs\mswinpr.rsp для GhostScript, чтобы он мог работать с Win-принтером (Canon MF3110). В него скопируйте (или наберите руками) следующие строки:
-IC:\gs\gs8.61\lib;C:\gs\fonts
-sDEVICE=mswinpr2
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="%printer%Canon MF3110"

Редактировать следует только 1 и последнюю (6-ю) строку. Все остальные строки редактировать не нужно. Можете сделать copy-paste указанных выше строк. Первая строка -Ic:\gs\gs8.61\lib;c:\gs\fonts должна начинаться с дефиса и большой латинской буквы «Ай» (а не «1» или «l»)! Более подробную информацию по этим и другим настройкам можно получить из файлов документации GhostScript: c:\gs\gs8.61\doc\Use.htm и c:\gs\gs8.61\doc\Install.htm

В последней строке следует указать имя вашего принтера. Например, если принтер называется Canon MF3110, то именно это и указываем. Для принтера LBP 810 строка выглядела бы так: -sOutputFile="%printer%Canon LBP810"

В практике было как минимум 3 случая, когда обходился указыванием \\spool\Canon LBP810.

Ошибка при указании имени принтера приведет к тому, что пользователя на Windows-машине придется постоянно указывать вручную принтер!
Добавляем в систему новый (виртуальный) дополнительный (к физически ранее установленному Canon MF3110) принтер: Пуск —> Настройка —> Принтеры —> Установка принтера. Появляются окна Мастера установки принтера, в которых выбираем:
Способ подключения — Локальный принтер. Затем…
Изготовитель — HP, Принтеры — HP LaserJet 4/4M PostScript. Затем…
Доступный порт — любой (LPT1: … LPT3:, потом его поменяем на RPT1:). Затем…
Название принтера — на свой вкус. Затем…
Напечатать пробную страницу — Нет.



В окне Принтеры выполняем правый щелчок мышкой по пиктограмме появившегося нового принтера HP LaserJet 4/4M PostScript и в выпавшем контекстном меню выбираем Свойства.
В появившемся окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Сведения, где выполняем:
Нажимаем кнопку Добавить порт…->Тип добавляемого порта: Другой -> Redirected Port.
В поле Порт указываем RPT1: (Redirected Port).
Нажимаем кнопку Параметры порта… и в появившемся окне диалога RPT1: Properties определяем:
В строке Redirect this port to the program: задаем: c:\gs\gs8.61\bin\gswin32c.exe. Именно gswin32c.exe, а не gswin32.exe!
В строке Arguments for this program are: задаем: @c:\gs\mswinpr.rsp -. Здесь после @c:\gs\mswinpr.rsp обязательно должен идти пробел, а за ним дефис! Иначе ваш реальный принтер распечатает страниц 30 мусора. Ранее файл c:\gs\mswinpr.rsp уже должен быть создан.
В строке Output: выбираем: Copy temporary file to printer.
В строке Printer: выбираем свой Windows-принтер (на который будет перенаправлена печать): Canon MF3110.
В строке Run: выбираем: Hidden (отказываемся от дополнительных всплывающих окон при печати).
Можно включить флажок Print Errors.
Можно определить файл лога (на любителя) через кнопку Log File, где в появившемся окне диалога RPT1: Log File Properties установить флажок Log File, а в строке Write standard output to the file: указать: c:\gs\logfile.txt.


Все, с диалогом RPT1: Properties покончено.
Нажимаем кнопку Очередь… и в появившемся окне диалога Параметры очереди устанавливаем Отключить двусторонний обмен данными. Остальные значения можно оставить без изменения (т.е. Начинать печать после помещения в очередь первой страницы; Формат данных в очереди — RAW).

Теперь в окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку PostScript, где нажимаем кнопку Дополнительно…. В появившемся окне диалога Дополнительные параметры PostScript сбрасываем (снимаем пометку) флажки:
Отправить Ctrl+D перед заданием;
Отправить Ctrl+D после задания.

Остальные параметры можно оставить без изменения.
Теперь в окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Доступ, где указываем:
Общий ресурс;
Сетевое имя — HP (или другое на свой вкус).

На этом можно считать, что работа по установке и настройкам виртуального принтера в Windows завершена. Осталось проверить печать через виртуальный принтер.
В окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Общие, где нажимаем кнопку Напечатать пробную страницу.

5. Установка доступа к Windows-принтеру из Linux

Здесь все операции выполняться на Linux-компьютере.
Если у вас ALT Master/Junior 2.2, тогда просто запустите: # printerdrake. Далее в диалогах укажите имя Windows-компьютера и принтер HP LaserJet 4M Foomatic/Postscript.
Если у вас ALD 4, тогда еще проще. Можно выполнить, например, из KDE: K -> Принтеры -> Добавить -> Добавить принтер/класс. В окнах диалога Мастера установки принтера задать:
Принтер SMB (Windows). Далее…
Далее…
Рабочая группа — <своя> (или кнопка Опрос); выбрать Windows-компьютер и принтер HP. Далее…
Задать производителя — HP; модель — HP LaserJet 4M. Далее…
HP LaserJet 4M (Foomatic + Postsript). Далее…
Далее…
Далее…
Далее…
Имя — HP (или свое). Далее…
Имя пользователя — root; пароль — **********.

Отправьте на печать какой-нибудь документ. Все должно работать превосходно!

6. Благодарности
Автору Redirection Port Monitor: Russell Lang, Ghostgum Software Pty Ltd., ghostgum.com.au
Авторам Ghostscript, ghostscript.com.
Рассылке Community ALT Linux и лично Alex Ogurtsov (aogurtsov@geeksforless.net) и еще Michael Shigorin (mike@altlinux.ru).
Авторам подобных статей на эту тему: Сеник Миколi (senyk_cw@mail.ru) и Игорю Чумак (zigoor@zmail.ru).

zhmen 15-10-2012 14:38 2005746

Делал в Win7 по вашей документации. Все получилось, но окно интерактивных служб все равно выскакивает с запросом выбора принтера. Далее выбираю принтер и печать идет. Может подскажете как автоматизировать и решить проблему?

ilich 16-10-2012 11:56 2006376

К сожалению мне и попробовать не на чем.
У меня был WinServer 2008R2 и на нём помогло отключение "Обнаружение интерактивных служб".
Что у тебя происходит при отключении этой службы?
Принтер кстати должен быть выставлен по умолчанию.

GreenRain 06-08-2016 18:03 2657416

В Windows 7 / 2008 (в отличие от XP / 2003) Мелкософт вдруг решил, что процесс, запущенный от имени "системы" не может тихо и без вопросов отправить задание на конкретный принтер.

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

В последней версии "Redirection Port Monitor" в настройках появилась галочка "Run as user".
Это позволяет запускать процесс Ghostscript (или другую программу, отсылающую PostScript данные на реальный принтер) от имени того пользователя, который создал задание для печати. И всё благополучно печатается.

Но если задание приходит по сети от имени Гостя или анонимного пользователя IIS (при печати через IIS по IPP), то опять начинаются проблемы.

Я придумал такой путь. Немного длинный, но работает.

1) На компьютере с реальным принтером устанавливаем и настраиваем "PostScript Virtual Printer" на порт "Redirection Port Monitor".
Обязательно ставим галочку "Run as user".

2) На том же компьютере устанавливаем программу RawPrintServer как службу.
В качестве принтера, на который надо перенаправлять задания, указываем "PostScript Virtual Printer".
Прописываем указанный порт RawPrintServer в исключения брандмауэра Windows.

3) На том же компьютере создаем нового пользователя, обязательно с паролем
(у себя я наделил этого пользователя правами администратора, не проверял, надо ли это).
Указываем, что служба RawPrintServer будет запускаться от имени пользователя.

4) На компьютере, откуда надо печатать по сети, создаем TCP/IP-порт (указываем IP компьютера с принтером и порт, который слушает RawPrintServer) и принтер на этом TCP/IP-порту с PS-совместимым драйвером.

Для Windows 7 / 2008 (x86 / x64) я использую "HP LaserJet 2300 series PS"


Время: 10:42.

Время: 10:42.
© OSzone.net 2001-