Перенаправление принтера в windows server 2008

Режим перенаправления (проброса) принтеров позволяет пользователям отправлять задания печати из терминальной RDP (RDS) сессии на свой локальный принтер, подключенном к компьютеру. По умолчанию в Windows пробрасываются все подключенные к компьютеру принтеры, и принтер назначенный по-умолчнаию на локальном устройстве, будет назначен устройством по-умолчанию в терминальной сессии.

Содержание:

  • Настройка Easy Print на RDP (RDS) сервере
  • Включаем проброса принтера в RDP сессию на клиенте
  • Использование в RDP принтеров, которые не поддерживают режим EasyPrint

До Windows Server 2008 поддержка терминальной печати была головной болью для администраторов, т.к. на удаленном сервере нужно было устанавливать и поддерживать в актуальном состоянии все драйвера печати, используемые на компьютерах пользователей. В новых версиях Windows для печати из RDP сессии используется универсальный драйвер Remote Desktop Easy Print, который позволяет печатать практически на любом принтере.

При использовании Easy Print не нужно устанавливать драйвера для перенаправленных принтеров на RDP сервере, а перенаправленный клиентский принтер автоматически сопоставляется с драйвером RD Easy Print. Драйвер Easy Print прозрачно перенаправляет все задания в локальные очереди печати на компьютер, кроме того, он обеспечивает полноценный доступ к графическому интерфейсу управления принтером на локальной машине (доступны все кастомные опции и настройки печати).

Настройка Easy Print на RDP (RDS) сервере

Если в качестве RDP сервера используется Windows Server и на нем установлена роль Remote Desktop Session Host, то перенаправление локальных принтеров через Easy Print должно работать по умолчанию, дополнительно делать ничего не нужно.

 роль Remote Desktop Session Host в Windows Server

Для всех проброшенных клиентских принтеров RDP хост будет пытаться использоваться драйвера RD Easy Print. Дополнительная настройка не требуется, локальные принтера автоматически появятся в сеансе пользователя.

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

  1. Откройте редактор групповых политик
    gpedit.msc
  2. Перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Printer Redirection (Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров)
  3. Включите политику Use Remote Desktop Easy Print driver first (Использовать в первую очередь драйвер принтера Easy Print служб удаленных рабочих столов)
    Включить политику использовать Использовать в первую очередь драйвер принтера Easy Print для КВЗ

Если эта политика отключена, значит драйвер принтера пользователя нужно вручную устаналивать на терминальном (RDP) сервере.

Чтобы обновить настройки GPO нужно выполнить команду
gpupdate /force
и завершить сессию пользователя (logoff).

Дополнительные параметры GPO из этой секции, которые можно использовать для настройки перенаправления принтеров в RDP сессии:

  • Redirect only the default client printer (Перенаправлять только используемый по умолчанию принтер клиента) – позволяет уменьшить количество пробрасываемых принтеров с клиентского устройства. В удаленной сессии будет виден только принтер, назначенный на компьютере пользователя по-умолчанию.
  • Do not set default client printer to be default printer in a session (Не устанавливать используемый по умолчанию принтер клиента в качестве принтера для сеанса)
  • Specify terminal server fallback printer driver behavior (Задать поведение сервера терминалов при выборе резервного драйвера принтера) – позволяет указать нужно ли назначать для резервного принтера PCL, PS (PostScript) или любой из этих тип драйвера.
  • Do not allow client printer redirection – позволяет полностью запретить использование перенаправленных принтеров в RDP сессии (должно быть отключено или не задано).

Для удобства управления драйверами и проброшенными принтерами на стороне RDP сервера можно установить консоль printmanagement.msc. В дестопных Windows 10/11 она установлена по-умолчанию, а в Windows Server ее можно добавить с помощью команды:

DISM /online /add-capability /CapabilityName:Print.Management.Console~~~~0.0.1.0

Откройте консоль
printmanagement.msc

Проверьте, что в разделе Drivers есть драйвер Remote Desktop Easy Print. Не удаляйте этот драйвер печати, без него перенаправление принтеров EasyPrint работать не будет.

Драйвер Remote Desktop Easy Print

Если у вас развернута RDS ферма, в настройках RDS коллекций есть несколько опций для управления перенаправлением принтеров для пользователей:

  • Allow client printer redirection
  • Use the client default printing device
  • Use the Remote Desktop Easy Print print driver first

Включаем проброса принтера в RDP сессию на клиенте

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

Чтобы RDP клиент пробрасывал локальные принтеры в сессию на удаленном хосте, нужно включить соответствующую опцию настройках утилиты Remote Desktop Connection (
mstsc.exe
).

  1. Запустите утилиту, перейдите на вкладку Local Resources
  2. В секции Local devices and Resources включите опцию Printers (здесь же включается проброс буфера обмена).
  3. Если вы подключаетесь к приложению, опублиованному в виде RemoteApp, с помощью файла, для проброса принтеров в *.RDP файле должна присуствовать строка:
    redirectprinters:i:1

Нюанс. Для корректной работы перенаправленных принтеров, имя (
hostname
) клиентского компьютера не должно превышать 14 символов. Если это не так, измените имя компьютера на клиенте.

Теперь подключаемся к RDP серверу и переходив в раздел Settings -> Bluetooth & Devices -> Printers & scanners. Здесь должны появится проброшенные в RDP сессию локальные принтеры.

Их можно опознать по именам, в которых указано имя принтера и метка (redirected n). Где n это ID сессии пользователя.

Перенаправленные принтеры в сессии пользователя на терминальном сервере

Также эти перенаправленные принтера будут отображаться в консоли управления принтерами
printmanagement.msc
. Здесь видно, что для них используется драйвер Remote Desktop Easy Print.

Проверить, что принтеры проброшены в сессию через Easy Print

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

Если на определенном клиенте не работает проброс принтеров в RDP, проверьте есть ли разделе реестра
HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client
параметр
DisablePrinterRedirection
со значением 1. Он может блокировать перенаправление принтеров. Удалите параметр или измените значение на 0.

Использование в RDP принтеров, которые не поддерживают режим EasyPrint

Есть ряд принтеров (как правило домашние или класса SOHO), которые не поддерживают функцию Easy Print, или работают в этом режиме некорректно. Также Easy Print не будет работать на Windows Server без установки роли RDSH. Для таких принтеров придется вручную установить одинаковые драйвера на клиентский компьютер и на терминальный сервер.

Чтобы установить драйвер, откройте консоль
printmanagement.msc
. Щелкните правой кнопкой по разделу Drivers и выберите Add Driver.

Воспользуйтесь мастером добавления драйвера, укажите путь к INF файлу драйвера и установите его.

Установка драйвера принтера из INF файла

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

Теперь, когда пользователь в следующий раз подключится к этому RDP/RDS хосту, в его сессию будет автоматически перенаправлен локальный принтер. Причем для него будет использоваться его собственный нативный драйвер (который вы установили на клиенте и на сервере) вместо драйвера TS Easy Print.

Установка родного драйвера принтера на RDP сервер

Для повышения безопасности и надежности RD сервера с нативными драйверами рекомендуется

включить режим изоляции драйверов печати

. Для этого в локальной GPO в разделе Computer Configuration -> Administrative Templates -> Printers включите параметры:

  • Выполнить драйверы принтеров в изолированных процессах (Execute print drivers in isolated processes)
  • Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати (Override print driver execution compatibility setting reported by print driver)

На операционной системе Windows server 2003 администраторы всегда сталкивались с проблемами печати на клиентских машинах, подключенных по протоколу RDP (Remote Desktop Protocol). В версии 2008 R2 microsoft позоботился об этом и внедрил систему печати Easy Print.

Печать через Terminal Services (устаревшая технология)
При использовании этой службы приходилось устанавливать драйвер на каждый принтер, который использовал пользователь при подключении по удаленному сеансу. Одно дело если у вас на всех компьютерах установлена одна модель принтера или используется один сетевой принтер. В этом случае не возникает проблем. Но как правило такое бывает редко и чаще всего образуются новые места с локальными принтерами разных производителей. В конечном итоге на сервере образуется каша драйверов, которые конфликтуют с собой.

Печать через Easy Print (мой выбор)
Тут всё просто как ни когда. Технология Terminal Services Easy Print использует формат файла Microsoft XML Paper Specification (XPS), который передается на компьютер пользователя и отправляется на печать, используя локальный драйвера принтера.

Настройка на стороне сервера (windows server 2008 R2)
По умолчанию удаленный рабочий стол в windows server 2008 использует компонент Easy Print. Если на стороне клиента эта система не поддерживается, то выполняется поиск подходящего драйвера на сервере. Поэтому особой настройки на сервере нет, просто проверка необходимых условий.
1. Проверяем, что установлен Microsoft XPS. Пуск -> Панель управления -> Устройства и принтеры. Выделяем Microsoft XPS Document Writer и жмем Свойства сервера печати, вклада Драйверы. Лишние можно удалить.

2. Проверяем, что не отключено значение «По умолчанию выбрать основной принтер клиента». Диспетчер сервера -> Конфигурация сервера узла сеансов удаленных рабочих столов. Вкладка Параметры клиента.

3. Для себя установил значение «Перенаправлять только используемый по умолчанию принтер». Заходим в редактор локальной групповой политики. Пуск -> Выполнить -> Gpedit.
Политика «Локальный компьютер» -> Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров

Настройка на стороне клиента (Windows XP Home Edition)
Для клиента необходимо установить всего два компонента:
1. Программа «Подключение к удаленному рабочему столу» версии не ниже 6.1
2. Microsoft .NET Framework версии не ниже 3.0 с пакетом обновления 1

В Операционной системе Windows 7 (если вы устанавливали обновления), то все эти компоненты уже присутствуют. Поэтому рассмотрим настройку на примере Windows XP Home Edition.
Узнать свою версию RDP Client можно через файл mstsc.exe который находится по адресу: C:/Windows/System32/mstsc.exe. Достаточно найти этот файл, нажать на него правой кнопкой мыши и выбрать Свойства.

В моем случае версия оказалась ниже. Идем на сайт Microsoft и скачиваем обновление.
http://www.microsoft.com/ru-ru/download/details.aspx?id=20609
После установки получаем нужный результат.

Версию Microsoft .NET Framework можно проверить здесь: http://support.microsoft.com/kb/318785/ru
Я не стал мучаться, а просто скачал и установил: http://www.microsoft.com/ru-ru/download/details.aspx?id=21

В итоге получаем приятный результат без каких-либо глюков.
Проверено на множестве принтеров. Таких как Canon LBP 6000B; HP LJ 1320, 1300, P1020, 1160; Kyosera FS1040;

Содержание

  1. Проброс принтеров windows 2008
  2. Проброс принтеров windows 2008
  3. HP M1120 MFP в терминальном режиме на WinServer 2008
  4. Microsoft Terminal Services — Практика использования Easy Print
  5. Настройка Easy Print в Windows Server 2012 R2
  6. Настройка Easy Print в Windows Server 2008 R2
  7. Проброс принтеров windows 2008
  8. Проброс принтеров windows 2008
  9. Вопрос
  10. Ответы
  11. Все ответы
  12. Перенаправление принтеров в терминале windows
  13. Перенаправление принтеров в терминалах (MS Terminal Services & Remote Desktop Services)
  14. Что такое печать в терминальных службах
  15. 1. Как включить печать в терминальных службах
  16. 2. Групповые политики
  17. 3. Схемы «родной драйвер» и «драйвер подстановки»
  18. 4. Схема со Screwdrivers
  19. 5. Совместимые с терминалами принтеры
  20. 6. Печать через VPN
  21. 1. Типы проблем с печатью в терминалах
  22. 2. Проблемы со спулером
  23. 3. Драйвер перенаправления
  24. 4. Реестр
  25. 5. Визард устранения проблем от Майкрософт
  26. 6. Если больше ничего не помогает, а печатать принтер должен
  27. 7. Печать на медленных каналах

Проброс принтеров windows 2008

Профиль | Отправить PM | Цитировать

Есть Windows server 2008r2 с терминальным сервером.
Проблема в том, что на него в пользовательские сессии не перенаправляются принтера локальных пользовательских пк. Т.е. диски без проблем появляются в сессии, а принтеры нет. Возможно только расшарить клиентский принтер в сеть и подключить непосредственно к сессии, что не выход (в данный момент так и работает).

Какие настройки стоит проверить и изменить, чтобы принтера перенаправлялись?
PS:
Галка для принтера в «Подключение к удаленному рабочему столу» установлена.
Клиентские пк с WinXP, Win7.

Драйвера точно все стоят (и работают)

Сообщения: 51909
Благодарности: 14931

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

Проброс принтеров windows 2008

В очередной убедился, что далеко не все принтеры можно заставить работать в терминальной среде (имеется в виду Microsoft Terminal Server). С локальными принтерами и МФУ — это лотерея 50/50.

Расскажу немного о работе в терминальном режиме. Довольно часто для полноценной работы клиентов необходимо обеспечить взаимодействие с локальными ресурсами — копирование файлов с целевого компьютера, буфер обмена, USB-устройства, и конечно печать на локальные и сетевые принтеры.

Из всего перечисленного именно терминальная печать может вынести мозг на ровном месте. А всему виной «кривой» драйвер какого-нибудь принтера, а то и не один.

Не всякий принтер возможно «пробросить» в терминальную сессию!

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

Мелкомягкая компания предложила некую универсальную технологию печати EasyPrint, позволяющую избежать установки драйверов для перенаправленных принтеров на терминальном сервере. В Windows 2008 появилась её новая реинкарнация TS Easy Print. Теоретически она повышает стабильность работы службы диспетчера очереди печати и терминального сервера в целом.

К сожалению, это только теория, на практике все не так радужно. Драйвер принтера должен уметь работать в определенном режиме абстракции. Не секрет, что принтеры класа SOHO (практически все локальные) имеют урезанные возможности по отношению к сетевым и в подавляющем большинстве не предназначены для работы в терминальных средах. Так что, по возможности, старайтесь не использовать их в работе.

Любителям танцев с бубном… как можно попытаться заставить работать подобные принтеры:

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

Но вообще это все костыли и стабильности системе не прибавит. Потому делаете на свой страх и риск, и дальнейшие косяки в работе, если возникнут решать тоже вам.

HP M1120 MFP в терминальном режиме на WinServer 2008

Скажу честно — заставить его нормально работать в терминале мне не удалось. Зато в ходе копаний был выявлен косяк при сетевой печати — НЕ ДОЛЖНО БЫТЬ РУССКИХ БУКВ в названии (уже давно известная проблема с русскими буквами в сети Windows).

Кое-как можно подцепить HP LJ 1132 MFP. Суть в том, что как перенаправленный он работать не будет, надо установить как сетевой для клиента на сервере. На локальной машине и на сервере должны стоять дрова принтера х64.

Расшариваем принтер. На клиентской машине устанавливаем дополнительно 64-битную версию драйвера (если система 32 бит). В свойствах принтера на вкладке «Доступ» в разделе «Драйверы» нажимаем «Дополнительные драйверы» и ставим галочку «х64» (система попросит указать место с дровами).

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Столкнулся проблемой драйверов Easy Print в RDP.

Microsoft Terminal Services — Практика использования Easy Print

Само собой это перебор.

Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection

Use Terminal Services Easy Print printer driver first

Теперь размер того-же документа становится 150 кб, разница огромна.

Само собой на терминальном сервере тоже должен быть установлен Universal Printing.

С драйверами других производителей думаю можно разобраться по аналогии.

Будет время позже добавлю картинки, и немножко структурирую текст.

Запись опубликована в рубрике Windows 2003, Windows 2008, Windows 7, Windows XP. Добавьте в закладки постоянную ссылку.

На операционной системе Windows server 2003 администраторы всегда сталкивались с проблемами печати на клиентских машинах, подключенных по протоколу RDP (Remote Desktop Protocol). В версии 2008 R2 microsoft позоботился об этом и внедрил систему печати Easy Print.

Печать через Terminal Services(устаревшая технология)
При использовании этой службы приходилось устанавливать драйвер на каждый принтер, который использовал пользователь при подключении по удаленному сеансу. Одно дело если у вас на всех компьютерах установлена одна модель принтера или используется один сетевой принтер. В этом случае не возникает проблем. Но как правило такое бывает редко и чаще всего образуются новые места с локальными принтерами разных производителей. В конечном итоге на сервере образуется каша драйверов, которые конфликтуют с собой.

Печать через Easy Print (мой выбор)
Тут всё просто как ни когда. Технология Terminal Services Easy Print использует формат файла Microsoft XML Paper Specification (XPS), который передается на компьютер пользователя и отправляется на печать, используя локальный драйвера принтера.

2. Проверяем, что не отключено значение «По умолчанию выбрать основной принтер клиента».

В Операционной системе Windows 7 (если вы устанавливали обновления), то все эти компоненты уже присутствуют.

Настройка Easy Print в Windows Server 2012 R2

Поэтому рассмотрим настройку на примере Windows XP Home Edition.
Узнать свою версию RDP Client можно через файл mstsc.exe который находится по адресу: C:/Windows/System32/mstsc.exe. Достаточно найти этот файл, нажать на него правой кнопкой мыши и выбрать Свойства.

В моем случае версия оказалась ниже. Идем на сайт Microsoft и скачиваем обновление.
http://www.microsoft.com/ru-ru/download/details.aspx?id=20609
После установки получаем нужный результат.

В итоге получаем приятный результат без каких-либо глюков.
Проверено на множестве принтеров. Таких как Canon LBP 6000B; HP LJ 1320, 1300, P1020, 1160; Kyosera FS1040;

Настройка Easy Print в Windows Server 2008 R2

Обновлена 12.02.2009

В 2008-ом сервере появилась такая фишка, как TS EasyPrint. Что это такое и с чем его едят?

Это штука, которая может эмулировать драйвер любого принтера. Представим себе ситуацию, с подключением к серверу терминалов клиентов (например, ) и последующей печати. До 2008-госервера нужно было проделать адскую работу по установке и настройке принтера в терминале: давать ему админские права, заходить под юзером, ставить принтер, убирать админские права. Неудобно. А если юзеров не 1, а 50. Вообще, хоть вешайся.

EasyPrint решает эту проблему. При подключении клиента, от подтягивает все его принтера, устанавливает дефолтный (тот который дефолтный у клиента), при этом неважно, какой именно принтер, есть ли дрова на него под 2008 сервер. EasyPrint эмулирует дрова, используя драйвера клиента.

Установка (сервер).

Для нормальной работы потребуется поднять сервер терминалов. Больше ничего ставить не нужно. Если не поставить эту службу, а просто включить «Удалённый рабочий стол», то ничего не заработает.

Настройка (сервер).

— настроить сервер терминалов
— изменить следующий параметр в групповых политиках (необязательно, он вроде бы по дефолту стоит так, как надо, но для большей уверенности, рекомендую 🙂 )

(для этого выполнить команду gpedit.msc)

выставить в «Включено»

После этого нужно принудительно обновить политику

(для этого выполнить команду gpupdate /force)

Установка (клиент)

Для установки требуются следующие компоненты:

SP3
NetFrameWork 3.0 SP1 (я для уверенности ставил версию 3.5)
RDP client 6.1 (что-то у меня не заработало, поэтому поставил версию 7.0)

Настройка (клиент)

В свойствах подключения не забудьте поставить галочку «Подключать принтера»

Примечание.

Если после печати у вас вылазит ошибка

то есть 2 варианта решения:

— отключить отчёт об ошибках
— заменить файл tswpfwrp.exe (он находится в с:\windows\system32) в XP этим же файлом, но изVist’ы или 7-ки

Запись опубликована автором skeletor в рубрике Windows.

Источник

Проброс принтеров windows 2008

Профиль | Отправить PM | Цитировать

Есть Windows server 2008r2 с терминальным сервером.
Проблема в том, что на него в пользовательские сессии не перенаправляются принтера локальных пользовательских пк. Т.е. диски без проблем появляются в сессии, а принтеры нет. Возможно только расшарить клиентский принтер в сеть и подключить непосредственно к сессии, что не выход (в данный момент так и работает).

Какие настройки стоит проверить и изменить, чтобы принтера перенаправлялись?
PS:
Галка для принтера в «Подключение к удаленному рабочему столу» установлена.
Клиентские пк с WinXP, Win7.

Драйвера точно все стоят (и работают)

Сообщения: 51909
Благодарности: 14931

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

Проброс принтеров windows 2008

Вопрос

Доброе время суток. Имеется сервер на Windows Server 2008R2, установлены роли Сервера Терминалов, Маршрутизация и удаленный доступ, из ПО установлено: 1С:Предприятие, SQL Server, Google Chrome, Adobe Reader. Проблема: время от времени перестает работать перенаправление принтеров, при этом так же не подключаются диски пользователей, и на тех клиентских машинах, где учетные данные для входа на сервер сохранены, автоматического входа не происходит, нужно вводить логин и пароль вручную. Проблема лечится только перезагрузкой сервера, до следующего раза. Что делал:

1. Установил все обновления на ОС

2. Удалил антивирус (в данное время на ОС не установлен антивирус)

netsh int tcp set global chimney=disabled

netsh int tcp set global rss=disabled

5. Увеличил время ожидания для служб:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control ключ ServicesPipeTimeout 60000

6. По возможности удалил большинство драйверов принтеров, оставив самые основные (по опыту не проблемные):

7. Изучил рекомендации по этим темам:

На данный момент не знаю что делать. Сейчас склоняюсь ко мнению, что проблема не в драйверах принтеров, или стороннем софте, а в самой Windows SRV 2008R2 STD, т.к.:

2) Все обновления есть

3) Из стороннего софта только 1С 82, которая никак не влияет на печать

4) Используемые драйвера принтеров не проблемные

5) Ошибка есть не только у меня, у многих пользователей.

Ответы

Была такая проблема, когда использовали 2008 R2 в качестве терминального сервера. Во-первых теоретически можно было восстановить работу, если с помощью process explorer в процессе службы найти поток, который мешает. Не помню точно как называется его состояние, но оно отлично от всех остальных потоков. Там каждый поток на одного пользователя создается. После его убийства служба оживает.

Во-вторых проблему удалось избежать когда полностью перешли на использование Easyprint с полный удалением всех локальный драйверов принтеров. Если до этого ошибка возникала чуть ли не ежедневно, то после перехода на Easyprint исчезла во все. Сделал вывод что проблема крылась где-то в печати и взаимодействии с драйверами.

MCITP: Server Administrator
MCTS: Desktop Virtualization
MCTS: Windows 7, Configuration
Сетевое администрирование Huawei Enterprise

Все ответы

Тоже встречал такую проблему, но пару раз. Сочетание ПО такое же как у Вас.

А обоих случаях помогла остановка и запуск службы «Remote Desktop Services UserMode Port Redirector»

Странно. У меня долго выключается, пишет что истекло время ожидания, но потом все же выключается.

Далее, запуск проходит нормально.

Была такая проблема, когда использовали 2008 R2 в качестве терминального сервера. Во-первых теоретически можно было восстановить работу, если с помощью process explorer в процессе службы найти поток, который мешает. Не помню точно как называется его состояние, но оно отлично от всех остальных потоков. Там каждый поток на одного пользователя создается. После его убийства служба оживает.

Во-вторых проблему удалось избежать когда полностью перешли на использование Easyprint с полный удалением всех локальный драйверов принтеров. Если до этого ошибка возникала чуть ли не ежедневно, то после перехода на Easyprint исчезла во все. Сделал вывод что проблема крылась где-то в печати и взаимодействии с драйверами.

MCITP: Server Administrator
MCTS: Desktop Virtualization
MCTS: Windows 7, Configuration
Сетевое администрирование Huawei Enterprise

Тоже встречал такую проблему, но пару раз. Сочетание ПО такое же как у Вас.

А обоих случаях помогла остановка и запуск службы «Remote Desktop Services UserMode Port Redirector»

MCITP: Server Administrator
MCTS: Desktop Virtualization
MCTS: Windows 7, Configuration
Сетевое администрирование Huawei Enterprise

MCITP: Server Administrator
MCTS: Desktop Virtualization
MCTS: Windows 7, Configuration
Сетевое администрирование Huawei Enterprise

EasyPrint работает нормально. В том числе с принтером 1132. Сомневаюсь, что проблема не в драйверах принтера.

MCITP: Server Administrator
MCTS: Desktop Virtualization
MCTS: Windows 7, Configuration
Сетевое администрирование Huawei Enterprise

Easy Print, к примеру не работает с принтерами 1020 и 1018, что уже является причиной невозможности его использования. Другие из моих принтеров не проверял, т.к. невозможность работы с вышеуказанными уже говорит о бессмысленности проверки остальных.

Сомневаюсь что здесь нет представителей MS. Просто, видимо у них полная безразличность к своим клиентам. А зря, особенно в эпоху популяризации Linux’а.

Источник

Перенаправление принтеров в терминале 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, она же «Подключение к удалённому рабочему столу».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Схема со Screwdrivers

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

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

Но… не всё оказалось так просто. Дело в том, что существуют некоторые, особо жадные производители принтеров (не будем говорить кто, хотя это 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, по мнению автора, свидетельствует о том, что с печатью в терминалах у этих устройств всё в порядке. Автору, пожалуй, ни разу не доводилось встречать хоть сколько-нибудь серьёзных устройств (исключая понятные случаи вроде переносных персональных принтеров, всяких там древних струйников и т.п.) этих производителей, в которых терминальная печать была бы невозможна.

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

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 выглядит так:

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

Переставлять драйвер редиректора, 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, который позволяет сжимать траффик печати, либо убедить его приобрести нормальный интернет.

Источник

Время на прочтение1 мин

Количество просмотров73K

К сожалению не все принтеры печатают через перенаправление в windows server 2008 easy print. Для того чтобы они стали печатать придется установить их драйвер на сервер. Затем нужно запустить команду gpedit.msc. В открывшейся оснастке выбрать:
Computer configurations->
Windows components->
Remote Desktop Services->
Remote Desktop Session Host->
Printer Redirection

Здесь изменть свойство use remote easy printet driver first в состояние Disable.

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

Теги:

  • windows server 2008 r2
  • easy print
  • troubleshooting
Всего голосов 9: ↑5 и ↓4

+1

Комментарии1

К написанию этой статьи меня подтолкнуло желание разобраться, что из себя представляет технология Easy Print, которая появилась в Windows Server 2008. К сожалению, информации по этому вопросу довольно мало, поэтому пришлось брать ее из разных источников и систематизировать самостоятельно. Одна из наиболее удачных книг, на мой взгляд, Windows Server 2008 Terminal Services Resource Kit (Christa Anderson and Kristin L Griffin with the Microsoft Presentation Hosted Desktop Virtualization Team, Microsoft Press © 2008).

Прежде чем говорить о технологии Easy Print, кратко рассмотрим, как работает обычная система перенаправления принтеров в терминальном сервере.

Традиционная система перенаправления принтеров

Основные компоненты, которые участвуют в перенаправлении принтеров:

  • winlogon.exe – процесс, который отвечает за создание/завершение сеанса и запуск оболочки пользователя;
  • winsta.dll – библиотека, которая используется для настройки терминальной сессии;
  • termsrv.dll – диспетчер удаленных подключений;
  • rdpwsx.dll – компонент, который работает в режиме пользователя и отвечает за подключение/отключение удаленных соединений по протоколу RDP;
  • rdpdr.sys – драйвер перенаправления RDP-устройств (работает в режиме ядра);
  • spoolsv.exe – диспетчер очереди печати;
  • usbmon.dll – компонент управления динамическими портами принтеров на терминальном сервере;
  • mstscax.dll – компонент терминального сервера, который собирает информацию о принтерах на клиентской рабочей станции (имя, драйвер, настройки и т.д.);
  • System Event Notification Service (SENS) – служба терминального сервера, которая отслеживает системные события (подключение\отключение сессий, создание\завершение сеансов на терминальном сервере) и передает информацию о них в приложения.

Автоматическое перенаправление клиентских принтеров в терминальную сессию без использования Easy Print происходит следующим образом:

  1. Клиент удаленного рабочего стола (mstsc.exe) подключается к терминальному серверу;
  2. В сессии пользователя запускается процесс winlogon.exe;
  3. Библиотека winsta.dll настраивает терминальную сессию;
  4. Компонент rdpwsx.dll с помощью winsta.dll и termsrv.dll обнаруживает новое соединение и уведомляет об этом драйвер перенаправления устройств rdpdr.sys;
  5. Драйвер перенаправления устройств посылает запрос клиенту на составление списка принтеров для дальнейшего их подключения в сессию пользователя;
  6. Клиент удаленного рабочего стола (mstsc.exe) собирает информацию с рабочей станции и через rdpwsx.dll посылает ее драйверу перенаправления устройств. В результате на терминальный сервер передаются следующие данные:
    — конфигурация принтера (имя принтера, имя драйвера, ориентация бумаги, статус и т.д.);
    — имена очередей печати (представление физического принтера в ОС Microsoft Windows) и имена соответствующих им портов;
    — очереди печати, созданные во время предыдущих подключений (перечислены в разделе реестра HKCU\Software\Microsoft\Terminal Server Client\Default\Add Ins\RDPDR на клиентском компьютере);
  7. Для каждой очереди печати при помощи драйвера перенаправления устройств создается соответствующий порт. Порты имеют имена вида «TSXXX», где XXX – номер, начинающийся с 001. При этом учитываются настройки, которые указаны в групповой политике (например, проверяется нужно ли перенаправлять все принтеры или только принтер по умолчанию).
  8. Драйвер перенаправления устройств через API уведомляет службу диспетчера очереди печати о появлении новых принтеров. Spoolsv.exe с помощью usbmon.dll добавляет созданные ранее порты в список доступных, и производит соответствующие обновления в реестре клиентского компьютера.
  9. Процесс winlogon.exe уведомляет службу SENS о создании терминальной сессии. В дальнейшем с помощью этой же службы удаляются созданные ранее порты при отключении и завершении сеанса.
  10. Служба SENS выполняет следующие действия:
    — убеждается, что для принтера есть соответствующий драйвер на терминальном сервере;
    — устанавливает принтер по умолчанию на терминальном сервере такой же как и на клиентской рабочей станции;
    — добавляет очередь печати в список устройств;
    — устанавливает права безопасности по умолчанию на очередь печати для подключившегося пользователя (чтение, запись, печать) и группы администраторов (полный доступ).

Процесс печати на перенаправленный принтер выглядит так:

  1. Пользователь запускает печать документа из какого-либо приложения;
  2. При помощи интерфейса графического устройства (GDI), создается файл формата EMF (Enhanced Metafile Format). Метафайл не зависит от устройства печати и содержит в себе инструкции необходимые для вывода изображения на принтер;
  3. Созданный файл передается в диспетчер печати терминального сервера;
  4. Постановленное в очередь задание возвращается в GDI. С помощью драйвера принтера, который работает в режиме пользователя, GDI преобразовывает задание из EMF в RAW-формат. В дальнейшем этот формат может быть обработан выбранным принтером.
  5. Задание на печать отправляется на перенаправленный порт (определенный как TSXXX);
  6. Диспетчер печати посылает задание на печать на монитор динамического порта (usbmon.dll);
  7. Монитор динамического порта передает файл компоненту rdpdr.sys, который посылает данные в готовом для печати растровом формате на соответствующий терминальный клиент, а тот уже отправляет его на нужный принтер.

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

Новая архитектура TS Easy Print

TS Easy Print разрабатывался для того, чтобы решить 4 основные проблемы с которыми сталкиваются системные администраторы:

  1. Драйверы, которые работают в режиме ядра, часто вызывают критические сбои в работе терминального сервера;
  2. Иногда имя драйвера на клиенте не совпадает с именем драйвера на сервере, в этом случае приходится вручную настраивать сопоставление в inf-файле, чтобы работало перенаправление принтеров;
  3. Необходимо тщательное тестирование драйвера перед его распространением на другие терминальные серверы;
  4. При печати на переправленный принтер передается большой объем данных по сети.

Чтобы решить описанные выше проблемы предлагается использовать новую архитектуру печати, основанную на формате XML Paper Specification (XPS). С ее помощью при печати на перенаправленном принтере можно использовать драйверы клиентского компьютера без установки их на терминальный сервер.

Для функционирования TS Easy Print на клиентском компьютере должны быть установлены:

  1. Клиент удаленного рабочего стола версии 6.1 или выше;
  2. .NET Framework 3.0 SP1 или выше.

Этим требованиям удовлетворяют наиболее распространенные на сегодняшний день версии клиентских операционных систем: Windows XP SP3, Windows Vista, Windows 7.

Процесс печати на перенаправленный принтер с использованием Easy Print происходит следующим образом:

  1. Пользователь запускает задание на печать из какого-либо приложения;
  2. В зависимости от типа приложения, задание на печать либо сразу же преобразуется в формат XPS (для приложений класса Windows Presentation Foundation), либо предварительно преобразуется в формат GDI (для Win32-приложений). ;
  3. Файл XPS отправляется в надстройку клиента удаленного рабочего стола, отвечающую за технологию TS Easy Print;
  4. Файл XPS без изменений передается напрямую драйверу печати на клиентском компьютере как XPS-обработанный файл;
  5. Файл XPS, предназначенный для GDI принтера, превращается в формат EMF;
  6. Задание на печать отправляется на принтер.

Как мы видим, использование универсального драйвера печати избавляет от необходимости установки на терминальный сервер дополнительных драйверов принтеров. Подготовленный XPS файл в отличии от EMF не требует дальнейшего преобразования в RAW. В связи с этим большую часть времени файл XPS, который содержит задание печати, гораздо меньше аналогичного EMF файла, а это в свою очередь требует меньшее количество ресурсов на его обработку. Кроме того, TS Easy Print использует виртуальные каналы, предоставляя возможность настройки свойств печати непосредственно на клиенте. Когда пользователь входит в настройки свойств принтера в терминальной сессии, драйвер TS Easy Print на терминальном сервере перехватывает этот запрос и посылает его надстройке TS Easy Print на терминальном клиенте. Клиент опрашивает установленный локально драйвер и локальные настройки принтера, а затем передает их на сервер. Таким образом, настройки полностью идентичны как на клиенте, так и на сервере.

В целом TS Easy Print превосходит традиционную систему печати по таким параметрам как:

  • стабильность службы диспетчера очереди печати;
  • объем передаваемых при печати данных;
  • необходимость установки драйверов для принтеров на терминальные сервера;
  • скорость печати.

Хотя со скоростью печати тут не так все однозначно. Если драйвер принтера изначально не поддерживает печать в формате XPS, то будет выполнено преобразование с использованием .Net Farmework. На старых медленных компьютерах этот процесс может вызвать существенную загрузку процессора и занять ощутимое время.

Пожалуйста, оцените статью:

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Простой веб сервер для windows
  • Game loop download for windows 10
  • Epson 660 сканер windows 10
  • Сколько весит установленная windows vista
  • Как удалить kaspersky security for windows server