| ПРОЕКТ ПОДДЕРЖИВАЕТСЯ ООО "ТОНК" Linux и Windows терминалы с поддержкой ICA и RDP. |
Terminal Server Printing: Design and Configuration
(C) Brian Madden.
Оригинал находится здесь.
|
Содержание |
Эта статья является выдержкой из книги "Terminal Services for Microsoft Windows Server 2003: Advanced Technical Design Guide", авторы Brian Madden и Ron Oglesby. Она описывает все аспекты печати в терминальной среде, включая вспомогательную информацию, проектирование, настройку, управление драйверами и использование сторонних инструментов. Хотя статья написано для терминальных служб Windows 2003, ее можно применять и для более ранних версий. |
В процессе проектирования вашей терминальной среды вы вспомните, что вашим пользователям рано или поздно придется что-то печатать. Печать является одной из важнейших функций для терминальных пользователей, хотя для администраторов это часто бывает ночным кошмаром. В идеале печать из приложений в сеансах RDP не должна отличаться от печати из любых других приложений. Она должна быть относительно прозрачна для пользователей; они должны иметь возможность щелкнуть кнопку печати в своих приложениях, легко выбирать нужный принтер и быстро получать распечатки.
Во всех серверных средах печать создает проблемы, причем не из-за Microsoft, а вследствии способа обработки в серверной среде. Поскольку обработка всех приложений осуществляется на сервере, пользовательские задания печати также создаются на сервере. Однако, принтеры пользователей обычно расположены рядом с ними и настраиваются на клиентских устройствах. Процесс генерации задания печати на сервере может быть весьма сложным. Кроме того, Windows Server 2003 использует такую же подсистему печати, что и во времена Windows NT. Но движок печати для Windows NT изначально проектировался как один процесс, предназначенный для одиночного устройства. Это подходит для рабочих станций, но может привести к проблемам на терминальных серверах.
В этой статье мы рассмотрим, как работает печать в Windows и какие опции настройки печати доступны на терминальном сервере. Мы также рассмотрим, как назначать принтеры в ситуации, когда к терминальному серверу подключаются сотни пользователей. Завершит статью рассмотрение реального примера решения проблем с печатью в одной компании.
Перед рассмотрением проблем, связанных с печатью на терминальном сервере, вам следует понять, как вообще работает печать в Windows. В конце концов, принцип печати на терминальном сервере не отличается от печати на любом другом компьютере Windows.
Чтобы распечатать документ, предпринимается удивительное число шагов. Можно написать целую книгу о процессе печати, но чтобы понять принципы печати в терминальной среде, нам нужно знать только основы.
Процесс печати слегка отличается в зависимости от того, производится печать на локальный принтер или на сетевой, но в обоих случаях присутствуют основные этапы. Существует три фазы между нажатием кнопки "Печать" и получения распечатки из принтера:

Фаза1. Приложение Windows
Когда пользователь запрашивает печать в приложении Windows, приложение отвечает за создание собственного вывода для подготовки к печати. Этот вывод включает такую информацию, как форматирование страницы и добавление номеров страниц. Приложение передает этот вывод в подсистему Windows, называемую "Интерфейс устройства графики" (Graphics Device Interface, GDI). GDI преобразует вывод приложения в метафайл, содержащий данные и команды принтера. Этот метафайл иногда называют "данные печати" (print data).
Предпочтительным форматом для данных печати является формат Microsoft, называемый EMF. Данные в формате EMF предпочтительнее данных в формате RAW, поскольку меньше нагружают процессор и позволяют фоновую печать. Файлы EMF не зависят от принтера. Приложение может генерировать файлы EMF для распечатки независимо от того, на каком принтере они будут распечатаны. Это промежуточные файлы между приложением и драйвером принтера. Чтобы понять это, представим, что мы хотим распечатать строку текста "All people seem to need data processing".
Файл EMF для этой строки текста будет содержать команды распечатки, включая информацию о цвете, шрифте, символах, интервале. Как только GDI записал файл EMF на диск, данные печати передаются в подсистему печати Windows.
Фаза 2. Подсистема печати
Подсистема печати Windows осуществляет множество функций. Простейший способ понять, что она делает, состоит в разбиении ее функций на логические этапы. Подсистема отвечает за следующие задачи:
Точный процесс зависит от типа принтера, на который посылается задание печати. Компонент печати - маршрутизатор печати (print router) - посылает данные по разным маршрутам в зависимости от того, является принтер локальным или сетевым.
При удаленной печати необработанный файл EMF посылается на сервер печати, где визуализируется подходящим драйвером принтера.
С другой стороны, если задание печати предназначено для локального принтера, спулер использует драйвер принтера для трансляции файла EMF в сырой формат принтера. Этот процесс называется "визуализацией" (rendering), он занимает некоторое время и ресурсы процессора. Визуализированное задание печати содержит сырые данные (задание печати), специфичные для принтера.
Взглянем еще раз на наш пример: "All people seem to need data processing".
Визуализированные данные будут содержать специфичные для принтера команды и форматирование, необходимые для распечатки на родном языке принтера. Информация включает в себя разрешение, информацию о лотке бумаги, а также растеризованное изображение страницы. Визуализированные задания отличаются друг от друга по размеру в зависимости от типа принтера и качества написания драйвера. Однако в большинстве случаев файлы заданий печати намного больше файлов EMF.
После создания задания печати спулер печати пересылает этот файл на принтер.
Фаза 3. Принтер
На конечной стадии принтер получает визуализированное задание от спулера. Принтер печатает этот файл, не обращая внимания на его формат. Вот почему принтер печатает мусор, если используется неверный драйвер печати. Использование неверного драйвера приводит к тому, что создаются задания, несовместимые с принтером. Но принтер не знает об этом и пытается печатать все, что он получает.
Разобравшись с принципом работы печати в среде Windows, мы можем рассмотреть, как можно настроить печать в терминальной среде. Но сначала нам следует "переопределить" стандартные термины печати, используемые в терминальной среде.
Хотя в реальном мире возможно бесконечное число сценариев печати, на терминальном сервере доступны только два:
\\servername\printername, а также принтеры, непосредственно
подключенные к терминальному серверу. Рассматривайте "серверные принтеры"
как установленные на сервере.
Важно понять разницу между серверными и клиентскими принтерами. Каждый тип имеет свои преимущества и недостатки, и они используются и настраиваются по-разному. Поэтому мы рассмотрим эти принтеры в разных разделах этой статьи.
Серверный принтер - это любой принтер, установленный на терминальном сервере. Технически это означает, что сервер имеет прямой доступ к очереди печати. Эта очередь может быть Windows или Netware, на клиенте или на сервере. Вообще, любой принтер, доступный через имя \\computername\printername является серверным.
Серверным принтером может быть также принтер, имеющий очередь печати на самом терминальном сервере. Это может быть принтер, подключенный к локальному порту LPT или USB, или IP-принтер с очередью, находящейся на сервере терминалов.
В терминальной среде серверные принтеры работают как обычные принтеры.

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

Преимущества серверных принтеров
Недостатки серверных принтеров
В терминальной среде, любой принтер, доступный на клиентском устройстве пользователя, считается "клиентским принтером". Это могут быть принтеры, непосредственно подключенные к устройству клиента (к порту USB или LPT), или это сетевые принтеры, назначенные до запуска сеанса RDP. В любом случае, Terminal Server 2003 может автоматически сделать такие принтеры доступными в сеансах RDP. Это позволяет пользователям печатать на свои привычные принтеры.
Клиентские принтеры поддерживаются веб-клиентом RDP и полным клиентом RDP. Некоторые сторонние разработчики предлагают клиентов RDP для других платформ, но возможности печати у них различны. В нашей статье мы рассматриваем только клиентов Microsoft.
Как работает печать на клиентские принтеры
Когда пользователь подключается к терминальному серверу, локальный клиент RDP автоматически делает доступными локально инсталлированные принтеры. Он динамически создает принтеры, которые печатают на специальные принтерные порты (также создаваемые динамически) и которые указывают на устройство клиента. Такие принтеры будут иметь имена типа “Printer name (from Client name)in Session #.” (Например, “Lexmark Optra E312 (from LAPTOP42) in session 14”) Кроме того, такие принтеры конфигурируются на особые порты с именами типа “TS001” и “TS002” (это можно видеть на вкладке "Порты" в свойствах принтера). Каждый принтер создается с правами доступа, которые разрешают печать на них только этому пользователю.
Технически администраторы могут печатать на любой принтер, поэтому они видят все принтеры всех пользователей сервера. Обычные пользователи видят только собственные принтеры. Если пользователю необходимо распечатать документ из приложения на терминальном сервере, он запускает задание на печать как обычно. В своем сеансе он видит принтеры своего клиентского устройства, перечисленные в диалоге выбора принтера. Для пользователя такие принтеры видны как обычные принтеры. Он не знает, что эти принтеры указывают на его локальные принтеры, доступные через протокол RDP.
Рассматривая процесс печати на клиенте, вы можете обратить внимание на то, что она может вызвать проблемы с производительностью. Сырые задания печати довольно велики и требуют много времени для передачи на принтер клиента, особенно если пользователь подключается через модем. Кроме того, производительность сеанса RDP может снизиться, поскольку полоса пропускания занимается заданием печати, посылаемым клиенту.
Теперь рассмотрим, что происходит при печати на сетевой принтер.
Концептуально этот процесс аналогичен печати на локально подключенный принтер. Однако, поскольку это сетевой принтер, клиент должен предпринять дополнительный шаг для отправки задания на сетевой сервер печати.
Казалось бы, почему бы терминальному серверу не быть умнее и сразу не послать задание на сетевой сервер печати? Тогда можно было избежать пересылки файла EMF на клиента и обратно. К сожалению, в реальности это не осуществимо. Например, могут быть ситуации, когда сервер печати доступен только с устройства клиента, а не с терминального сервера, или между сетями может стоять межсетевой защитный экран, разрешающий только траффик на порт RDP 3389.
В любом случае, сотрудники Microsoft, проектировавшие Windows, знали, что они не могут гарантировать, что терминальный сервер имеет доступ к серверу печати. Таким образом, они пришли к наименьшему общему знаменателю и решили посылать задание клиенту, даже если клиент в некоторых случаях должен вернуть задание на сервер.
Конечно, есть простой способ победить эту потенциальную неэффективность, отобразив сетевой принтер в терминальном сеансе. Другой способ состоит в использовании продуктов третьих фирм, как будет показано позже.
Помимо проблем с производительностью, существуют другие недостатки использования клиентских принтеров. Задания печати инициируются на терминальном сервере, если используется отображение принтеров. По этой причине на сервере необходимо установить драйверы клиентских принтеров, чтобы можно было создавать задания печати. Именно сервер создает задания печати в сеансах пользователей, а не устройство клиента.
Если вам повезло со средой, в которой есть небольшое число разных типов принтеров, то это не вызовет проблем. Но если у вас есть сотни пользователей с сотнями разных принтеров, установка и настройка драйверов на терминальном сервере может превратиться в сущий кошмар. Мы рассмотрим использование и управление драйверами принтеров далее в этой статье.
Еще один недостаток использования клиентских принтеров состоит в том, что для того, чтобы пользователь мог использовать принтер, он должен быть установлен и сконфигурирован локально на устройстве клиента. Если ваши пользователи имеют большое число принтеров, настроенных на рабочих станциях, это может быть хорошо. Однако, это может быть совсем нехорошо, если речь идет о терминальном сервере. Скорее всего вы захотите отстраниться от конфигурирования принтеров на индивидуальных рабочих станциях. Если пользователь сам устанавливает или удаляет свои локальные принтеры (это не ваша проблема), это будет влиять на то, как он будет печатать в терминальной среде (а это уже ваша проблема).
Преимущества печати на отображенные клиентские принтеры
Недостатки печати на отображенные клиентские принтеры
По умолчанию клиентские принтеры уже настроены на клиентских устройствах, поэтому там вам делать нечего. Вся настройка отображения принтеров выполняется на терминальном сервере. Чтобы разрешить пользователям использовать свои локальные принтеры, нужно выполнить два этапа:
Этап 1. Установка драйверов
В первую очередь следует убедиться, что на терминальном сервере установлены
необходимые драйверы принтеров. В реальной жизни есть масса проблем, связанных
с инсталляцией и управлением драйверами принтеров на терминальных серверах.
Некоторые особенности мы рассмотрим в разделе "Управление драйверами"
далее в этой статье.
Этап 2. Настройка терминального сервера для подключения клиентских принтеров
После установки драйверов необходимо настроить терминальный сервер подключать
клиентские принтеры при запуске сеансов RDP. Для этого нужно настроить права
доступа, слушатель RDP и свойства доменной учетной записи пользователя.
Этап 2А: Проверьте права доступа печати
Чтобы пользователи могли печатать на терминальном сервере, они должны иметь
права Read, Write, Execute и List Folder Contents на каталог спулера %SystemRoot%\System32\Spool.
Хотя эти настройки не приняты по умолчанию в Windows Server 2003, они должны
быть правилом на любом терминальном сервере.
Этап 2B: Проверьте настройки RDP
С помощью утилиты Terminal Services Configuration вы можете настроить
опции печати для всех пользователей, использующих некоторое соединение. На вкладке
“Сlient settings” свойств соединения убедитесь, что в разделе “Disable the following”
отключены опции “Windows printer mapping” и “LPT port mapping”. Включение одной
из этих опций предотвратит отображение клиентских принтеров. Кроме того, если
включена опция “Use connection settings from user settings”, то следует проверить
настройку учетной записи пользователей.
Вместо настройки этих опций в свойствах RDP вы можете применять их посредством
GPO. Настройки отображения клиентских принтеров могут быть найдены в GPO Computer
Configuration\Administrative Templates\Windows Components\ Terminal Services\Client
Server Data Redirection
Этап 2C: Настройка пользовательских учетных записей
Вы можете настроить свойства подключения клиентских принтеров для отдельных
пользователей. В среде Active Directory, свойства отображения являются частью
объекта пользователя (вкладка Active Directory Users and Computers | User Object
| Environment).
Выбор “Connect Client Printers at Logon” приведет к тому, что при входе пользователя на сервер терминалов будут автоматически создаваться его клиентские принтеры. При выходе пользователя и после распечатки всех его заданий принтер автоматически удаляется. Если вы не установите опцию “Connect Client Printers at Logon”, у пользователя сохранится возможность вручную отобразить клиентский принтер, хотя он и не будет создан автоматически.
Проблемы с драйверами при использовании отображения клиентских принтеров
Помните, что для использования клиентских принтеров на терминальном сервере должны быть установлены драйверы этих принтеров, поскольку задание печати визуализируется на терминальном сервере.
На первый взгляд, это не должно вызывать проблем. Однако, не все так просто. Например, откуда терминальный сервер знает, что на нем установлен правильный драйвер клиентского принтера?
Когда пользователь с включенным отображением клиентских принтеров запускает сеанс на терминальном сервере, сервер проверяет имена драйверов принтеров, инсталлированных на клиентском устройстве. Затем он ищет эти имена среди драйверов, установленных на сервере. Если оба имени совпадают, сервер знает, что у него есть инсталлированный соответствующий драйвер и принтер автоматически отображается. Если же соответствия не найдено, принтер пропускается и терминальный сервер переходит к следующему клиентскому принтеру.
Например, если терминальный сервер имеет инсталлированный драйвер “HP OfficeJet 40xi” и клиент RDP имеет инсталлированный принтер с именем “HP OfficeJet 40xi”, то сервер распознает совпадение. Но если клиент использует драйвер “HP DeskJet 500”, то сервер разумеется видит, что это другой драйвер.
Это прекрасно работает, когда клиенты Windows 2000 и Windows XP подключаются к терминальным серверам Windows 2000/2003. Эти платформы имеют одинаковые названия одних и тех же драйверов, что гарантирует совпадение. Однако, это приводит к интересной ситуации, если клиент использует старые версии Windows, включая ME, 98, 95 или NT. Проблема состоит в том, что один и тот же драйвер принтера в разных системах может иметь разные названия. Например, версия принтера LaserJet 5P в Windows 95/98 называется “Hewlett Packard LaserJet 5P,” а этот же принтер в Windows 2000/XP/2003 называется “HP LaserJet 5P.” Для человека это одно и то же, но сервер считает эти имена разными. Поэтому если клиент Windows 98 с клиентским принтером HP LaserJet 5P подключается к серверу, тот не может отобразить принтер, поскольку имена драйверов различны - даже если установлен нужный драйвер.
Решение проблемы: Сопоставление драйверов от клиента к серверу
Для решения этой проблемы можно сопоставить имена драйверов принтеров на сервере с именами драйверов на клиентах. Например, вы можете сказать серверу, что драйвер клиентского принтера с именем “Hewlett Packard LaserJet 5P” является тем же драйвером, что и драйвер на сервере “HP LaserJet 5P.”
Учтите, что это вам нужно, если (1) вы используете отображение клиентских принтеров и (2) используете клиентов, отличных от Windows 2000 или Windows XP.
Чтобы разрешить сопоставление драйверов, разместите на терминальном сервере
файл, который содержит пары имен драйверов на стороне клиента и на стороне сервера.
В ранних версиях сервера терминалов это делалось с помощью файла “wtsuprn.inf”,
находящегося в каталоге %systemroot%\system32\. Однако, в Windows
Server 2003 этого файла нет и он не ищется.
Для создания файла сопоставления в Windows 2003 вам нужно добавить в реестр два значения:
Key: HKLM\SYSTEM\CurrentControlSet\
Control\Terminal Server\Wds\rdpwd
Type: REG_SZ
Value: PrinterMappingINFName
Data: Имя файла .INF, содержащего сопоставление имен драйверов - например, c:\winnt\inf\printsubs.inf
Key: HKLM\SYSTEM\CurrentControlSet\
Control\Terminal Server\Wds\rdpwd
Type: REG_SZ
Value: PrinterMappingINFSection
Data: Наименование раздела в файле .INF, содержащего собственно сопоставление
(Например, Printers)
После внесения изменений реестр перезапустите службу спулера или перезагрузите сервер терминалов, чтобы изменения вступили в силу. После изменения реестра вам следует создать файл .INF, включающий имена драйверов. Этот файл должен выглядеть так:
;PRINTSUBS.INF ;This file contains Mappings for Client driver to Server driver printer connections [Printers] ;"Client Printer Driver Name" = "Server Printer Drive Name" "Hewlett Packard LaserJet 5P" = "HP LaserJet 5P"
Вы можете создать этот файл в Notepad и сохранить его с расширением .INF в каталоге %SystemRoot%\System32\.
Имена драйверов в этом файле чувствительны к реестру и пробелам. Все, что находится внутри кавычек, должно точно соответствовать имени драйвера. Как и в большинстве файлов .INF лидирующий символ точка-с-запятой (;) означает комментарий и такая строка игнорируется. При использовании этого файла вы можете включить в него несколько сопоставлений имен драйверов.
Создание карты сопоставления - больше искусство, чем наука. К счастью, есть замечательный сайт www.printingsupport.com. На нем вы найдете файлы сопоставления имен драйверов, которые можете использовать в своей среде.
Создав файл сопоставления, вы должны разместить его на всех терминальных серверах, где применяется отображение клиентских принтеров. Учтите, этот файл указывает на драйверы, которые должны быть инсталлированы на терминальном сервере.
Если ваш файл .INF содержит синтаксические ошибки (кроме неверного указания имени драйвера внутри кавычек), вы можете получить в журнале событий следующее сообщение:
Event 1110: "Error processing ntprint.inf. If the file on the system is corrupt, you can restore it from the installation media.
Это сообщение сбивает с толку, поскольку ссылается на файл “ntprint.inf ”, а не на указанное вами имя файла. Эта ошибка обычно означает, что ваш файл .INF содержит ошибку. Чаще всего это бывает, когда в файле не содержится записей. Ваш новый файл .INF должен содержать минимум одно сопоставление и минимум одно сопоставление не должно начинаться с символа комментария. Если ваш файл .INF содержит пустое имя секции, вы также получите ошибку 1110.
Как найти точное имя драйвера
Для сопоставления имени драйвера вам необходимо знать его точное имя как на стороне сервера, так и на стороне клиента. Вы можете получить эту информацию из диалога свойств принтера (щелкните правой кнопкой мыши на принтере и выберите "Свойства"). На компьютерах Windows 9x драйвер перечислен в поле “Print using the following driver”. На сервере Windows 2003 диалог драйвера находится на вкладке “Advanced”. Поскольку имя принтера может варьировать на рабочих станциях в зависимости от платформы, убедитесь, что у вас есть правильное имя драйвера для каждой используемой платформы. Например, если вы видите “HP LaserJet 4000 Series PCL 5/5e,” указывайте все символы пунктуации, пробелы и регистр букв.
Если драйвер уже установлен на сервере, но еще нет принтера, вы можете проверить список установленных драйверов. Просто откройте апплет "Printers" в панели управления и щелкните вкладку “Drivers” в апплете File | Server Proprieties. В нем содержится полный список драйверов, инсталлированных на терминальном сервере.
После добавления имен драйверов в файл сопоставления, ваши пользователи могут печатать на своих клиентских принтерах из сеансов RDP. Вам не нужно перезагружать сервер при изменении файла сопоставления. Пользователь должен просто выйти и вновь войти.
Последовательность отображения клиентского принтера
При входе пользователя на сервер терминалов, сервер предпринимает ряд шагов для поиска подходящего драйвера
В общем, процесс инсталляции драйвера в Terminal Server 2003 проходит достаточно гладко. Проблемы возникают в основном из-за несовместимых драйверов, которые приводят к краху сервера, но это не такая проблема, как была во времена NT 4 (масса обычных драйверов вызывала синий экран смерти, когда несколько пользователей пытались печатать одновременно).
Ограничение количества инсталлированных драйверов
Одна из больших забот администраторов связана с количеством инсталлированных драйверов на серверах. Поскольку для каждого типа клиентского принтера необходимо на терминальном сервере установить драйвер, серверу приходится управлять массой драйверов.
Есть два способа предотвращения установки слишком большого количества драйверов на сервере. Вы можете:
Давайте рассмотрим, как мы можем использовать сопоставление имен драйверов с помощью файла .INF для управления количеством инсталлированных драйверов на сервере. Помните, что файл может содержать несколько записей драйверов клиента для одного драйвера сервера. Это означает, что один драйвер сервера может поддерживать десятки и даже сотни разнообразных моделей клиентских принтеров. Например, известно, что многие драйверы LaserJet работают с другими принтерами LaserJet. Вы можете указать, чтобы все принтеры HP LaserJet 4, HP LaserJet 4M, HP LaserJet 4 Plus, HP LaserJet 4M Plus, HP LaserJet 4L и HP LaserJet 4ML использовали один и тот же драйвер “HP LaserJet 4”. Это позволит использовать один драйвер для шести моделей принтеров. Для этого настройте сопоставление в файле .INF следующим образом:
[Printers] ;"Client Printer Driver Name" = "Server Printer Drive Name" "HP LaserJet 4M" = "HP LaserJet 4" "HP LaserJet 4 Plus" = "HP LaserJet 4" "HP LaserJet 4M Plus" = "HP LaserJet 4" "HP LaserJet 4L" = "HP LaserJet 4" "HP LaserJet 4ML" = "HP LaserJet 4"
На самом деле HP имеет общий драйвер LaserJet (называемый "HP LaserJet”), который можно использовать для любого принтера LaserJet, а общий драйвер DeskJet (“HP DeskJet”) можно использовать для любого принтера DeskJet. Добавление таких записей в файл.INF позволит поддерживать десятки разнообразных типов принтеров всего парой драйверов.
Вы также можете использовать " сопоставление альтернативных драйверов", чтобы сопоставить драйвер одного производителя и принтер другого производителя.
Помимо поддержки меньшего количества драйверов вы можете получить также выгоду в производительности. Файл печати, передаваемый через RDP клиенту, создается драйвером печати. Все драйверы не одинаковы. Некоторые принтеры очень эффективны при создании файлов печати, особенно это касается брэндов. Однако, мы, администраторы, не всегда можем влиять на то, какие принтеры используют пользователи. С большой долей вероятности они покупают не дорогостоящие брэндовые принтеры, а дешевые за $25. Такие принтеры зачастую имеют крайне неэффективные драйверы и создают файлы печати по мегабайту на страницу. Программисты, пишущие такие драйверы, скорее всего не представляют, что кому-то придет в голову передавать файлы печати по медленным сетям.
Для борьбы с этим вы можете найти альтернативный драйвер, который будет эффективнее, чем родной драйвер. Можно также использовать альтернативные черно-белые драйверы для цветных принтеров. Изначально черно-белые драйверы создают меньшие файлы, чем цветные. Естественно, пользователи не смогут печатать в цвете, но монохромная печать все же лучше, чем ничего.
Но использование сопоставления альтернативных драйверов наводит на один вопрос - а какие драйверы можно использовать для каких принтеров?
Конечно, это отчасти можно выяснить методом проб и ошибок, но есть и более лучшие способы потратить свое время. К счастью, интернет наполнен прекрасными бесплатными ресурсом, как www.printingsupport.com, которые предоставляют ресурсы по сопоставлению драйверов для администраторов терминальных серверов.
Единственный недостаток при использовании альтернативных драйверов состоит в том, что некоторые функции оригинального принтера работать не будут. Обычно это малозначимые функции, например, настройка множественных лотков принтера, сшивка или двустронная печать.
Преимущества альтернативных драйверов
Недостатки альтернативных драйверов
Как уже обсуждалось выше, архитектура печати на клиентских принтерах весьма неэффективна из-за больших объемов заданий печати, пересылаемых через поток RDP. Хотя некоторые методы печати более эффективны (например, использование серверов печати), не всегда есть возможность их использовать. Улучшить производительность печати можно несколькими способами:
Уменьшение разрешения печати
Поскольку при отображении принтера клиенту посылается все задание, пользователи медленных соединений ощущают падение производительности своих сеансов. Величина этого падения пропорциональна размеру отправляемого задания печати. Уменьшение размера задания печати уменьшает его влияние на сеанс клиента. Уменьшив разрешение принтера с 600 DPI до 300 DPI вы можете уменьшить размер задания на 75%.
Дополнительное преимущество состоит в том, что такое задание завершается быстрее, поскольку меньше передается данных. Недостатком является то, что задания, требующие высокого разрешения, будут выглядеть зернистыми, что не всегда приемлемо. Для текста вполне достаточно разрешения 300 DPI.
Независимо от того, какие вы принтеры используете - серверные или клиентские - вам необходимо инсталлировать драйверы принтеров на терминальном сервере. Как следствие, вам следует потратить некоторое время, размышляя, как всеми этими драйверами управлять. Перед тем, как перейти к этой проблеме, давайте посмотрим, что из себя представляют драйверы, как они работают и как они хранятся на серверах Windows.
Как работают драйверы принтеров
В общем, драйверы принтеров Windows транслируют задания печати из формата EMF, независимого от принтеров, в формат, понятный принтеру. Вот почему принтер печатает "мусор", когда используется неправильный драйвер. Перед тем, как использовать драйверы, их необходимо инсталлировать.
При установке драйвера на терминальный сервер или сервер Windows 2000 происходят две вещи. Во-первых, на сервер копируются необходимые файлы драйвера. Сервер сохраняет файлы драйвера в каталоге %systemroot%\system32\spool\drivers\w32x86\3\. В имени каталога “w32x86” означает платформу Windows 32-bit, а “3” означает версию драйвера (3 = Windows 2000/XP/2003). Во-вторых, подробности о драйвере записываются в реестр в ключ HKLM\System\CurrentControlSet\Control\Print\ Environments\Windows NT x86\Drivers\Version-3\<printerdrivername>.
Индивидуальные настройки печати пользователя сохраняются в реестре в ключе HKCU\Printers. Эти настройки специфичны для каждого пользователя и сохраняются в его профиле.
Установка драйверов принтеров
Установка драйверов на терминальный сервер не отличается от установке их на обычном компьютере Windows. Простейший способ состоит в установке через апплет “Printers and Faxes” (Start | Printers and Faxes | File Menu | Server Properties | “Drivers” tab | кнопка “Add” ) На терминальном сервере важно лишь добавить версию драйвера для Windows 2000/XP/2003.
Если требуется установить множество драйверов, вы можете создать скрипт, используя rundll32.exe для вызова printui.dll (интерфейс вызова свойств принтера).
Если вы используете только стандартные драйверы, входящие в комплект Windows 2003 (в файле “driver.cab”), то можно не заботиться об инсталляции драйверов. Но если у вас есть драйверы, не входящие в комплект Windows 2003, вы можете автоматизировать процесс установки большого количества драйверов, выполнив следующую команду:
rundll32 printui.dll,PrintUIEntry /ia /m "Driver Name" /h "Intel" /v "Version of driver" /f \\Source\print.inf
Замените в этой строке Driver Name именем драйвера, как в файле .INF,
замените Version of Driver платформой, на которой будете его использовать
(обычно Windows 2000 или XP) и замените \\Source\print.inf на маршрут
к файлу .INF драйвера. Подробности по использованию rundll32.exe для установки
драйверов вы можете получить, дав команду "rundll32 prinui.dll,PrintUIEntry
/?” с командной строки. При использовании этой команды обратите внимание,
что между prinui.dll и PrintUIEntry нет пробела.
Удаление драйверов
При удалении принтера из папки “Printers” на терминальном сервере его драйвер не удаляется. Это может создать проблему, когда вы выяснили, что некоторый принтер вызывает проблемы, и вам необходимо удалить его драйвер, чтобы предотвратить использование его пользователями.
К счастью, апплет "Printers and Faxes" в Windows 2003 (и 2000) можно использовать также и для удаления драйверов с сервера терминалов. (Start | Printers and Faxes | File Menu | Server Properties | “Drivers” tab | “Remove”)
В качестве альтернативы вы можете использовать команду “rundll32” с парой опций. Это полезно для удаления драйверов на удаленных машинах. Вот пример использования команды для удаления драйвера на удаленном сервере.
Для удаления драйвера на машине, на которой вы зарегистрировались:
rundll32 printui.dll,PrintUIEntry /dd /m "HP DeskJet 500" /h "Intel"
/v "Windows 2000"
Для удаления драйвера на удаленной машине:
rundll32 printui.dll,PrintUIEntry /dd /c\\Computername /m "HP DeskJet
500" /h "Intel" /v "Windows 2000"
Если эти методы завершились неудачей, вы можете удалить драйвер вручную:
Какой драйвер использует принтер?
Иногда необходимо выяснить, какой драйвер использует принтер, который вы еще не установили. Это бывает полезным, если вы хотите разрешить терминальному серверу автоматически устанавливать необходимые драйверы.
Каждый сервер Windows 2000 и Windows 2003 содержит основной список принтеров,
которых он поддерживает, и драйверы, которые требуют принтеры. Этот основной
список хранится в файле %systemroot%\inf\ntprint.inf. Вы можете
открыть этот файл в текстовом редакторе и увидеть, какой драйвер требуется для
какого принтера. Записи в Ntprint.inf сгруппированы по производителям и перечисляют
индивидуальные принтеры и их драйверы.
[HP] “HP 2000C” = HPV2000C.GPD.ICM
Репликация драйверов и принтеров
Одна из проблем, стоящих перед администраторами в среде с несколькими терминальными серверами состоит в том, что каждый сервер поддерживает собственный список сконфигурированных принтеров и локально инсталлированных драйверов. Каждый терминальный сервер ничего не знает о конфигурации принтеров и драйверах других терминальных серверов. Кроме того, администратор не знает, какие драйверы установлены или обновлены до тех пор, пока не проверит каждый сервер вручную.
Помимо этого, принтеры сервера и их конфигурация хранятся локально на каждом сервере и должны добавляться, удаляться или меняться на каждом сервере. Это превращает администрирование в средах с сотнями различных клиентских принтеров в настоящий кошмар.
В средах с балансировкой нагрузки или с кластерами каждый сервер должен быть сконфигурирован идентично остальным. Это означает, что драйверы, принтеры и конфигурация принтеров должны быть одинаковыми для всех серверов кластера. Ручная настройка кластера из 5 серверов с 100 принтерами займет очень много времени. А теперь представьте то же количество принтеров в кластере из 20-30 серверов. Вы быстро придете к мысли, что необходим иной способ управления драйверами.
Существует немного способов перенести принтеры и драйверы, созданные на одном терминальном сервере, на другой терминальный сервер:
Метод 1. Использование Print Migrator
Print Migrator - это утилита от Microsoft, который можно использовать для репликации драйверов принтеров между серверами. Printer Migrator позволяет сохранять принтеры, очереди, драйверы в файл CAB. Затем вы восстанавливаете содержимое CAB на другом сервере. Вы можете использовать этот инструмент даже для миграции принтеров между разными версиями терминального сервера.
Преимущества
printmig /?)Недостатки
Метод 2. Репликация вручную
Еще один способ репликации драйверов принтеров состоит сделать это вручную. Вы должны вручную инсталлировать или скопировать все необходимые файлы драйвера на ваши терминальные серверы.
Преимущества
Недостатки
После того, как вы завершили всю подготовительную работу, вам необходимо предоставить способ доступа пользователей к принтерам. Это очень просто, если вы используете отображение принтеров, поскольку в этом случае принтеры для пользователей создаются автоматически.
Но клиентские принтеры в реальной жизни не всегда используются, поэтому необходимо использовать серверные принтеры. При использовании серверных принтеров вы должны продумать, как пользователи будут осуществлять к ним доступ. Следует ли назначить принтеры для отдельных пользователей? Или дать возможность их использовать всем пользователям? Тогда как пользователи будут знать, какие принтеры им использовать? Для ответа на эти вопросы мы рассмотрим две стратегии:
Если вы решили контролировать, на каких принтерах могут печатать ваши пользователи, вам следует определить, как предоставить такой доступ. Установка прав доступа к принтерам важна, но сама по себе она не конфигурирует принтер для пользователя.
Например, если вы хотите, чтобы пользователь “brian” печатал на принтере \\printerserver\fastlaser, вы можете отредактировать свойства этой очереди печати и дать пользователю "brian" привилегии печати. Однако, откуда Брайан будет знать, как получить доступ к принтеру? Достаточно ли он смышлен, чтобы запустить обозреватель сети, найти компьютер \\printserver, выбрать принтер fastlaser? Скорее всего, если вы решите, что Брайан должен использовать принтер \\printserver\fastlaser, то вам потребуется способ назначения ему этого принтера, чтобы когда он выбирает "Печать" из приложения на терминальном сервере, принтер \\printserver\fastlaser показывался в списке принтеров.
Есть три способа назначения принтеров пользователям:
Способ 1. Настройка принтеров в скриптах входа
Один из проверенных способов предоставления доступа пользователей к принтерам состоит в отображении принтеров в скрипте входа.
Одно из преимуществ использования скриптов входа состоит в том, что можно отображать принтеры в зависимости от членства пользователя в группах. Тогда вы можете предоставить доступ к принтеру просто добавив пользователя нужную группу Windows.
Отображение с командной строки
Вы можете использовать команду “rundll32” для отображения пользовательских соединений
на сетевые принтеры (этот метод заменяет ранее использовавшуюся менее гибкую
утилиту “con2prt.exe”). Для этого добавьте следующие строки в скрипт входа:
rundll32 printui.dll,PrintUIEntry /in \\printserver\printer
Убедитесь, что между словами “printui.dll” и “PrintUIEntry” нет пробела. Вы можете повторить эту команду несколько раз для разных принтеров.
Отображение принтеров с помощью Kixtart
Если вы в качестве языка скрипта входа используете Kixtart, то можете использовать
его собственные возможности для подключения к сетевым принтерам. Например, следующий
код Kixtart проверяет, является ли пользователем членом группы “PrinterGroupName”.
Если да, то он добавляет принтер \\printserver\fastlaser и настраивает его как
используемый по умолчанию.
if ingroup(“PrinterGroupName”)
addprinterconnection (“\\printserver\fastlaser”)
setdefaultprinter (“\\printserver\fastlaser”)
endif
Многие администраторы используют код подобный этому, добавляя такой сегмент кода для каждого принтера. Это позволяет создать общий скрипт входа, который назначает принтеры на основе членства пользователей в группах.
Преимущества назначения принтеров через скрипты входа
Недостатки
Способ 2. Нстройка принтеров через профили пользователей
Еще один способ предоставления доступа пользователей к принтерам состоит в использовании перемещаемых профилей. Тогда пользователям потребуется всего один раз подключить принтер. Затем соединение с принтером становится частью перемещаемого профиля и будет автоматически восстанавливаться при последующих входах.
Преимущества назначения принтеров через перемещаемые профили
Недостатки
Способ 3. Установка принтеров на сервере терминалов
Последний способ нельзя назвать "лучшей практикой", но он работает в небольших сетях с небольшим числом принтеров. Для его использования вам необходимо инсталлировать принтеры локально на сервер терминалов. Это не означает, что вы должны физически подключить принтер к серверу. Это просто означает, что вы должны добавить принтер на сервере как локальный принтер, а не сетевой. Для этого:
Указанная процедура создает общую очередь печати на терминальном сервере. Хотя эта очередь для удаленного принтера, сервер считает его локально инсталлированным принтером. По умолчанию все пользователи, запускающие сеансы на терминальном сервере, могут печатать на локальные принтеры сервера, т.е. они автоматически имеют доступ к этим принтерам.
Вы можете изменить права доступа инсталлированных принтеров, чтобы разрешить доступ отдельным пользователям или группам.
Основной недостаток такого подхода состоит в том, что очередь печати локальна по отношению к терминальному серверу, подсистема печати сервера создает файл спулера локально и посылает его по сети в сыром формате, а не в EMF (в некоторых случаях, например, при использовании плат JetDirect, это происходит всегда).
Преимущества установки принтеров на каждом сервере
Недостатки
Вместо того, чтобы назначать пользователям принтеры, вы можете разрешить пользователям самим выбирать свои принтеры. Это существенно облегчает вашу работу. Если важна безопасность, у вас остается возможность устанавливать привилегии печати.
Если вы даете пользователю права печати на сетевой принтер, принтер автоматически не устанавливается для пользователя. Однако, пользователь может открыть обозреватель сети и подключиться к нужному принтеру.
Преимущества
Недостатки
Если ваши пользователи способны настроить свои собственные принтеры через Windows Explorer или папку “Printers” в меню Start, все прекрасно. Но в реальной жизни многие предпочитают не позволять пользователям подключаться к рабочему столу Windows или Windows Explorer, а вместо этого использовать только одно приложение, поэтому пользователи не могут подключить сетевые принтеры, поскольку для этого не имеют доступа к интерфейсу.
Учитывая это, многие администраторы предоставляют пользователям соединение к серверу, которое запускает папку Printers. Конечно, для пользователя это лишний шаг, но зато дает возможность предоставить доступ к ресурсам без предоставления доступа ко всему рабочему столу.
Настройка папки Printers в качестве начального приложения
Подключение к папке Printers сделать несложно. Эта папка не имеет собственного исполняемого файла, на самом деле она встроена в оболочку Windows (explorer.exe). Такие типы компонентов оболочки называются "расширениями оболочки" (shell extensions). Каждое расширение имеет собственный идентификатор GUID, который напоминает серийный номер и позволяет отличаться от других расширений. Информация о различных расширениях находится в реестре в ключе HKEY_CLASSES_ROOT\CLSID\<unique guid>.
В случае папки Printer уникальный GUID равен {2227A280-3AEA-1069-A2DE-08002B30309D}.
Любая программа Windows может обращаться к расширению, вызывая explorer.exe и требуемый GUID расширения. Вы можете создать начальное приложение, которое указывает на расширение оболочки - папку Printers. Вот как это сделать:
Как только вы нажмете Enter, значок для папки изменится на значок принтера. Если вы откроете папку, она будет выглядеть также, как папка Printers в главном меню. Чтобы сделать папку Printers доступной как автономное приложение, вам следует создать командную строку.
Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}.”c:\ print\Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}\.printexplorer.exe)
в папку m:\print\ . C:\print\printexplorer.exe /n,/root,C:\print\Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}.Эта командная строка начинается с запуска printexplorer.exe с несколькими опциями командной строки. Опция /n указывает открыть однопанельное окно. Опция /root указывает открыть окно в корне, предотвращая использование “Вверх” для браузинга по каталогам. Командная строка завершается полным маршрутом к вашей папке.
К этому моменту мы рассмотрели все аспекты печати в терминальной среде. Но даже считая, что все предусмотрели, все равно возможно появление всяческих проблем, включая:
К счастью, есть программные решения третьих фирм, помогающие решать эти проблемы. Наиболее известны следующие производители:
• Emergent Online (EOL):
большая консалтинговая компания, которая также производит программное обеспечение
для облегчения администрирования в среде с множеством тонких клиентов.
• ThinPrint: немецкая
компания, фокусирующаяся на решении проблем с печатью в мобильных средах и средах
с низкой пропускной способностью.
• triCerat Software:
предлагает ряд продуктов, которые помогают упростить управление в терминальной
среде, включая решения, связанные с печатью.
• Qnetix: компания, предлагающая
продукт Uniprint
Поскольку встроенные решения печати в терминальном сервере довольно бедны, стоит рассмотреть решения сторонних разработчиков. После этого раздела вы поймете, нужны ли вам эти продукты и как они смогут вам помочь. Все четыре производителя предоставляют 30-дневные пробные версии своих продуктов.
Инструменты перечисленных разработчиков можно разбить на две группы:
Универсальный драйвер от EOL, Qnetix и Citrix позволяет инсталлировать на сервер терминалов один "универсальный" драйвер, который будет использоваться для любого принтера. (Этот драйвер, к сожалению, не будет работать для специфических принтеров, таких как плоттеры, принтеры этикеток и принтеры штрих-кодов).
Во время печати подсистема печати терминального сервера использует универсальный драйвер для визуализации задания в файл PDF или PCL (в зависимости от продукта). Затем задание печати передается на устройство клиента, где локальная подсистема печати передает его в нужную очередь печати.

Преимущества универсального драйвера
Недостатки
Продукты, использующие печать EMF
Продукты ThinPrint и triCerat попадают во вторую группу, известную как продукты для EMF-печати. TriCerat выпускает продукт под названием “ScrewDrivers”, а ThinPrint выпускает “ThinPrint.”
Технически, EMF-печать более высокоуровневая, чем использование UPD, но и более дорогостоящая. triCerat ScrewDrivers и ThinPrint инсталлируют на сервер эмулятор драйвера принтера, который получает данные печати от GDI. Этот подход аналогичен UPD. Однако, в отличие от UPD, эти продукты на базе EMF не визуализируют задания печати. Вместо этого они посылают файл EMF (который не зависит от принтера) на устройство клиента. Там клиентское ПО от triCerat или ThinPrint перенаправляют данные EMF в подсистему печати клиента. Устройство клиента визуализирует задание печати и отправляет его на соответствующий принтер как обычное задание печати вне терминальной среды.

Преимущества EMF-печати
Недостатки
Решения для печати в низкоскоростных сетях
Часто терминалы используются в ситуациях, когда пользователи находятся в одном месте, а терминальный сервер - в другом. Такое расположение используется в большинстве случаев, поскольку желательно располагать серверы терминалов в непосредственной близости от источников данных. Одной из проблем в такой архитектуре является печать. Обычно в месте, где находятся пользователи, есть собственный сервер печати - это часто бывает в удаленных офисах или этажах.

Проблема состоит в неэффективности использования WAN. Если используются клиентские принтеры, сервер терминалов формирует задание печати целиком перед тем, как послать его через WAN.
Перечисленные инструменты третьих фирм несколько облегчают эту ситуацию.
Продукты на основе UPD посылают данные PDF или PCL клиенту, а клиент вызывает свою локальную подсистему печати и распечатывает документ как обычно.
Решения на базе EMF посылают клиенту сжатые данные EMF, где клиент опять же вызывает свою подсистему печати и распечатывает документ как обычно.
Казалось бы, никаких проблем с продуктами третьих фирм не должно быть. Но что случится, если ваше клиентское устройство подключено по медленному каналу? Или если ваше клиентское устройство работает на платформе, не поддерживаемой перечисленными продуктами?
К счастью, и для этой проблемы есть решение. Некоторые производители предлагают продукты, которые позволяют передавать информацию напрямую на сервер печати, минуя устройство клиента.
Реализация такого подхода зависит от производителя. Поставщики UPD, как EOL и Qnetix, предлагают решения, которые посылают файлы PDF непосредственно на серверы печати, а ThinPrint может посылать данные EMF непосредственно на сервер печати.
Здесь тоже есть свои преимущества и недостатки. Решения на базе EMF лучше с точки зрения производительности и качества, но ценой более высокой стоимости по сравнению с решением на базе UPD.
Dina’s Gourmet Food Service
Компания Dina’s Gourmet решила внедрить Windows 2003 Terminal Servers для предоставления доступа к приложениям своим пользователям. Компания имеет 13 офисов и 950 пользователей. Команда проектировщиков произвела инвентаризацию офисов и пользователей. По результатам инвентаризации они смогли сформировать основные принципы проектирования своей терминальной среды. Теперь необходимо разобраться с печатью. Проектировщики решили, что проще всего создать решение на основе сценариев печати. Рассматривая свой проект терминального сервера, они решили, что существует четыре основных сценария печати:
Помимо определения разных сценариев печати, проектировщики также создали список целей, которые должны быть достигнуты в их среде печати. Этот список включает следующее:
Учитывая эти цели, проектировщики решили заняться этими сценариями по отдельности, начиная с головного офиса.
Головной офис
Все принтеры в головном офисе являются стандартными сетевыми принтерами. Большинство серверов печати работают на базе Windows 2000. Все сетевые принтеры стандартные и все имеют платы JetDirect.

В головном офисе все принтеры пользователей автоматически отображаются в скриптах входа. Поскольку проектировщики захотели, чтобы пользователи получали одно и тоже окружение независимо от точки входа - на сервере терминалов или на рабочей станции - пользователи запускают стандартные скрипты входа (кроме раздела обнаружения вирусов, если обнаружено, что пользователи входят на сервер терминалов). Поскольку принтеры конфигурируются в скриптах входа, проблем с настройкой принтеров для разных пользователей не возникает.
Кто-то из проектировщиков заметил, что печать из сервера терминалов будет быстрее, поскольку он расположен в центре данных на одной стойке с сервером печати. Задания печати, генерируемые на сервере терминалов, даже не будут выходить за пределы центра данных. Но тут есть одна проблема - на терминальные серверы необходимо устанавливать драйверы принтеров. Некоторые из проектировщиков предложили инсталлировать все драйверы для всех принтеров; другие предложили установить только основные. Чтобы разобраться в этих разных вариантах, давайте глубже разберемся в проблеме.
В головном офисе компании Dina Gourmet есть восемь разных типов принтеров. Три четверти из них составляют принтеры HP LaserJet. Остальные более специализированные, такие как цветные и матричные принтеры. Некоторые проектировщики считают, что все принтеры LaserJet могут использовать один и тот же драйвер, скорее всего драйвер LaserJet 4. Хотя при этом теряется часть функциональности более продвинутых принтеров, можно не поддерживать большое количество разнообразных драйверов.
Другие проектировщики считают, что без проблем можно поддерживать все 8 типов принтеров. Они говорят, что раз это сетевые принтеры, то вряд ли будут использоваться неподдерживаемые принтеры.
В конце концов, проблема с драйверами дошла до CTO. Его видение было неоспоримо. Он сказал: "Мы уже потратили массу денег на крутые принтеры, которые могут печатать с двух сторон бумаги, нумеровать и сшивать. С другой стороны, переход на терминалы должен стать ключевой частью нашей инфраструктуры на следующие пять лет. По этой причине мы должны сделать все, чтобы получить полную отдачу от наших принтеров в терминальной среде."
Исходя из этого, проектировщики решили установить все родные драйверы принтеров на свои серверы терминалов Windows 2003.
Региональные офисы
В компании Dina Gourmet есть два региональных офиса по 150 пользователей в каждом. Большинство приложений обслуживаются на локальных терминальных серверах. Однако, некоторым пользователям необходим доступ к приложениями на терминальных серверах, расположенных в головном офисе. В обоих случаях все принтеры в региональных офисах являются сетевыми принтерами. Серверы печати на базе Windows 2000 расположены в региональных офисах.

По большей части печать в региональных офисах аналогична печати в головном офисе, где пользователи получают свои принтеры с помощью скриптов входа. Пользователи сеансов RDP своих локальных терминальных серверов имеют быстрый и надежный доступ к принтерам.
Единственная проблема связана с теми пользователями, которым требуется печать из приложений, выполняющихся на терминальных серверах головного офиса. Чтобы разобраться, как настроить для них печать, проектировщики устроили опрос и создали "профиль печати пользователя".
Помимо опроса индивидуальных пользователей, проектировщики рассмотрели используемые принтеры и собрали следующую информацию о них:
Оценка выявила, что лишь двадцати пользователям необходима печать на терминальных серверах в головном офисе. Большинство из них используют рабочие станции с Windows XP, и лишь немногие - тонкие клиенты HP Evo. Некоторым пользователям требуется печать в цвете, и они печатают довольно часто. Они используют принтеры HP LaserJet 8000N и печатают с двух сторон бумаги.
На основе анализа и собранной информации, проектировщики составили следующие требования:
Проектировщики решили, что для удовлетворения этих требований лучше всего использовать решения третьих фирм. Эти решения обеспечат наилучшую общую производительность печати для пользователей региональных офисов, которым требуется печать из приложений, выполняющихся на терминальных серверах головного офиса. Недостатком этого подхода являются дополнительные затраты на приобретение этих решений, помимо затрат на продукцию Microsoft. Однако, улучшение производительности и снижение усилий на администрирование позволит быстро окупить затраты.
Малые офисы
В десяти малых офисах компании есть локальные серверы печати, но все приложения выполняются на терминальных серверах головного офиса. Поскольку сервер печати не находится рядом с терминальным сервером, задания печати должны передаваться от сервера терминалов на сервер печати по каналу WAN, что занимает продолжительное время.

В этом случае проектировщики решили использовать такую же схему, как в региональных офисах и внедрить продукты третьих фирм.
Домашние пользователи
Наконец, проектировщики обратили внимание на домашних пользователей. Эти пользователи запускают приложения на серверах головного офиса. У большинства домашних пользователей есть локальные принтеры, которые подключены к ноутбукам по USB или LPT. Основная проблема состоит в том, что заранее неизвестно, какие принтеры пользователи будут использовать.

К счастью, технология для домашних пользователей также легко реализуема. Проектировщики знают, что пользователи работают в следующих условиях:
Все эти требования естественно приводят к единственному решению: программы третьих фирм. Серверный компонент ПО устанавливается на каждый терминальный сервер. Клиентский компонент устанавливается на каждом устройстве клиента RDP. После установки клиента, сервер терминалов отправляет клиенту небольшой файл в формате EMF.
|
Дополнительные материалы: http://www.printingsupport.com
- отличный ресурс по печати в терминальной среде
|