Как настроить и устранить проблемы печати через ScrewDrivers в терминальной среде?

Системный администратор IT и автоматизация бизнеса
← На главную

Организация стабильной печати в терминальной среде — одна из самых сложных задач для системного администратора. Программный продукт TriCerat ScrewDrivers призван решить проблемы несовместимости драйверов и медленной передачи данных на печать. В этой статье мы подробно разберем, как правильно настроить систему, устранить ошибки маппинга и оптимизировать работу принтеров для пользователей 1С и других приложений.

Архитектура ScrewDrivers и основные принципы работы

Рассмотрим логику работы продукта. Система состоит из двух ключевых компонентов: Server Part (устанавливается на терминальном сервере) и Client Part (устанавливается на локальном компьютере пользователя). В отличие от стандартного механизма проброса принтеров RDP, ScrewDrivers создает виртуальный канал печати, используя собственный протокол передачи метафайлов TMF (TriCerat Metafile).

Разберем основные преимущества такого подхода:

  1. Независимость от драйверов: На сервере не нужно устанавливать сотни драйверов под каждый принтер клиента. Достаточно одного универсального драйвера ScrewDrivers.
  2. Сжатие трафика: Формат TMF позволяет сжимать задание на печать до 90%, что критично для удаленных офисов с узким интернет-каналом.
  3. Изоляция: Ошибки в локальном драйвере принтера не приводят к падению службы печати на всем сервере.

Проанализируем базовую настройку. На стороне клиента в панели управления ScrewDrivers мы выбираем, какие именно локальные принтеры должны пробрасываться в сессию. На стороне сервера настраиваем правила именования и права доступа. Важный нюанс: при использовании ScrewDrivers в настройках RDP-клиента (mstsc.exe) рекомендуется снимать галочку "Принтеры" в разделе локальных ресурсов, чтобы избежать дублирования устройств.

Решение проблем с портами (LPT, USB, DOT4)

Часто возникают ситуации, когда современные лазерные принтеры (например, серии HP LaserJet) подключаются через USB, но определяются системой как использующие DOT-порт. Это может приводить к тому, что принтер не виден в терминальной сессии. Разберем метод "обманного маппинга", который помогает решить эту проблему.

Допустим, у нас есть принтер HP LaserJet 1300 на USB-порту. Проделаем следующие шаги:

  1. Установим на локальном ПК пользователя "виртуальный" принтер, используя стандартный драйвер из базы Windows (например, HP LaserJet 1100).
  2. Назначим этому принтеру порт LPT1, даже если физически его нет.
  3. Сделаем этот принтер общим (расшарим) под именем PrintReal.
  4. Выполним команду перенаправления порта:

net use lpt1: \\127.0.0.1\PrintReal /persistent:yes

После этого ScrewDrivers корректно подхватит задание, отправленное на LPT1, и перенаправит его на реальное USB-устройство. Также проанализируем настройки сервера: в оснастке Terminal Services Configuration на закладке "Параметры клиента" убедитесь, что флажки "Сопоставление принтеров" и "Сопоставление LPT-портов" сняты (то есть разрешения не заблокированы).

Устранение проблем с масштабом и шрифтами (Pre-rendering)

Посмотрим на ситуацию, когда печать из терминала идет мелким шрифтом или со смещением таблиц. Это часто случается с принтерами Canon (например, LBP-3200). Причина кроется в механизме обработки шрифтов. Выясним, как это исправить:

В настройках ScrewDrivers Client на стороне пользователя перейдем к параметрам принтера и проанализируем режимы рендеринга:

Если настройки сбрасываются после перезахода в сессию, рекомендуется обновить версию клиента. Как показывает практика, версия 4.4.3.38 и выше стабильно сохраняет выбранный режим Pre-render.

Ошибки DEP (Data Execution Prevention) и системные сбои

Если при попытке печати у пользователя вылетает ошибка EventType: BEX или mstsc.exe закрывается с кодом c0000005, мы имеем дело с конфликтом системы предотвращения выполнения данных (DEP). Проанализируем шаги по устранению:

  1. Зайдите в "Свойства системы" -> "Дополнительно" -> "Быстродействие" -> "Параметры" -> "Предотвращение выполнения данных".
  2. Добавьте исполняемые файлы ScrewDrivers (обычно sd_u_agent.exe или компоненты серверной части) в список исключений.
  3. В некоторых случаях требуется добавить туда и сам клиент удаленного рабочего стола %SystemRoot%\System32\mstsc.exe.

Если принтеры внезапно перестали мапиться для конкретного пользователя, проверьте, не открыто ли у него несколько параллельных сессий. ScrewDrivers может "путаться", если один и тот же логин используется на разных терминальных серверах или в нескольких RDP-подключениях одновременно. Документ может уходить в спулер ("исчезать"), но фактически отправляться в другую активную сессию того же пользователя.

Очистка системы после удаления ScrewDrivers

Иногда после удаления программы в системе остаются "мертвые" порты, которые мешают установке других принтеров. При попытке их удаления вручную возникает ошибка "you are not allowed this port". Разберем, как очистить реестр вручную:

Проанализируем ветку реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors

Найдите раздел с названием ScrewDrivers Monitor или аналогичным и удалите его. Также проверьте ветку портов:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Ports

После удаления записей обязательно перезапустите службу диспетчера печати Print Spooler:


net stop spooler
net start spooler

Особенности работы с Windows Server 2019/2022 и драйверами V4

Современные версии Windows Server используют архитектуру драйверов V4, которая накладывает жесткие ограничения на изоляцию процессов печати. Если вы используете старую версию ScrewDrivers (например, 4.x) на сервере 2022, вы столкнетесь с тем, что папка принтеров не открывается или печать уходит в ошибку.

Рекомендация: Для ОС Windows Server 2019/2022 используйте версию ScrewDrivers не ниже 7.0. В ней реализована полная поддержка изоляции графа печати. Если обновиться невозможно, попробуйте переключить тип драйвера принтера на клиенте с V4 на V3 (Class Driver), если это поддерживает производитель устройства.

Настройка специализированных принтеров (Zebra, термопечать)

При работе с принтерами этикеток (Zebra, TSC) часто возникает проблема: принтер пробрасывается, но 1С не видит специфические форматы бумаги (например, 43x25 мм). Разберем решение:

В настройках ScrewDrivers Client на стороне пользователя включите опцию "Query Device for Settings". Это заставит систему принудительно опрашивать драйвер локального принтера о доступных форматах носителей. Если это не помогает, используйте функцию Custom Paper Size в консоли администратора на сервере, чтобы вручную задать размеры этикеток, которые будут транслироваться всем пользователям термопринтеров.

Заключение: ScrewDrivers остается мощным инструментом, но требует внимательной настройки под каждую версию ОС. Помните, что залог успеха — это соответствие разрядности (x64 сервер — x64 клиент) и правильный выбор режима рендеринга для "капризных" моделей принтеров.

← На главную