← На главную
При организации многопользовательского терминального доступа на базе клиентских операционных систем (в частности, Windows 7 Начальная или Домашняя базовая) системные администраторы часто сталкиваются с ситуацией, когда печать из удаленной сессии на локальный принтер не работает. Стандартный механизм перенаправления принтеров (RDP Easy Print и виртуальные порты TS) в этих редакциях операционной системы заблокирован разработчиками на системном уровне либо дает сбои из-за отсутствия необходимых служб. Разберем причины такого поведения и подробно рассмотрим рабочие способы обхода этой проблемы.
Выясним причины: почему в базовых редакциях Windows не работает проброс устройств
Проанализируем архитектурные ограничения Windows 7 Home Basic / Starter, которые препятствуют нормальному выводу на печать:
- Блокировка каналов перенаправления в реестре. В базовых выпусках Windows системные политики сессий терминалов по умолчанию отключают виртуальные каналы для принтеров (Client Printer Mapping, CPM) и дисков (Client Drive Mapping, CDM).
- Отсутствие редактора локальных групповых политик. В домашних версиях Windows нет оснастки
gpedit.msc, что усложняет включение нужных параметров штатными графическими средствами администрирования.
- Особенности работы технологии Easy Print. Механизм Easy Print преобразует задания печати в формат XPS. Если на хосте или клиенте отключен компонент XPS Viewer / XPS Services либо не установлена соответствующая версия .NET Framework, сервер пытается использовать прямой драйвер устройства.
- Хост-ориентированные (GDI/CAPT) принтеры. Бюджетные модели печатающих устройств (например, линейки Canon LBP или HP LaserJet 10xx/11xx) используют специфические виртуальные порты DOT4 или USB, которые крайне нестабильно работают через стандартный редирект RDP-сессий.
Способ 1. Разблокировка перенаправления принтеров и дисков через системный реестр
Поскольку графический редактор политик отсутствует, активируем возможность перенаправления ресурсов вручную через реестр на хост-компьютере (сервере подключений). Рассмотрим пошаговый порядок действий:
- Запустим редактор реестра: нажмем сочетание клавиш Win + R, введем
regedit и нажмем Enter.
- Перейдем в ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp.
- Найдем параметр типа DWORD с именем
fDisableCpm (отвечает за блокировку принтеров) и установим его значение равным 0.
- Найдем параметр
fDisableCdm (отвечает за блокировку локальных дисков) и также установим его значение равным 0.
- Проверим наличие ветки
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services. Если в ней присутствуют параметры fDisableCpm или fDisableCdm, также изменим их значения на 0.
- Перезапустим службу диспетчера печати (Spooler) и перезагрузим компьютер для применения параметров.
Кроме того, если служба терминалов использует сторонние модули перехвата системных библиотек, проверим конфигурационный файл сервиса (.ini). При возникновении сбоев печати рекомендуется перевести параметр SLInitHook в значение 0 и перезапустить терминальную службу.
Способ 2. Превращение локального принтера в сетевой с помощью RawPrintServer
Если штатный механизм перенаправления портов RDP не работает или дает сбои на хост-ориентированных принтерах (Canon CAPT, бюджетные HP), разберем надежное решение с эмуляцией аппаратного сетевого интерфейса. Данный метод организует прямую передачу заданий по протоколу RAW на порт 9100.
Рассмотрим порядок настройки по шагам:
- Настройка на стороне клиента (компьютер с подключенным принтером):
- Скачаем и установим небольшую системную службу RawPrintServer.
- В конфигурации утилиты укажем целевой физический принтер и сетевой порт (по умолчанию используется стандартный TCP-порт 9100).
- Запустим службу RawPrintServer. Компьютер начинает слушать порт 9100 и передавать все поступающие RAW-данные напрямую на физический принтер.
- Настройка на стороне терминального сервера:
- Откроем оснастку Устройства и принтеры и нажмем Установка принтера.
- Выберем пункт Добавить локальный принтер.
- В окне выбора порта выберем Создать новый порт, тип порта — Standard TCP/IP Port.
- В поле Имя или IP-адрес укажем локальный или VPN IP-адрес клиентского компьютера.
- В параметрах порта укажем протокол RAW и номер порта 9100.
- Установим точный драйвер для модели принтера вручную из списка или с диска производителя.
При такой схеме печать отправляется напрямую по протоколу TCP/IP минуя механизмы трансляции RDP. Это обеспечивает стабильную работу даже тех моделей устройств, которые категорически отказываются пробрасываться через сеансы удаленного рабочего стола.
Способ 3. Организация печати через общую сеть (VPN) и сетевой общий доступ
Если клиентский компьютер и хост находятся в разных подсетях или подключаются через интернет, объединим их в единую виртуальную локальную сеть с помощью VPN-решений (например, NeoRouter, WireGuard или OpenVPN).
Разберем этапы реализации этого варианта:
- Установим VPN-клиент на серверную машину и на компьютер пользователя, объединив их в общую изолированную виртуальную сеть.
- На клиентском ПК откроем свойства физического принтера, перейдем на вкладку Доступ и включим опцию Общий доступ к данному принтеру, задав простое сетевое имя (например,
WorkPrinter).
- На хост-машине откроем сетевой путь к клиентскому компьютеру (по выданному VPN-адресу, например:
\\10.0.0.5\WorkPrinter) и выполним подключение устройства.
- Установим необходимые драйверы на сервере. Обратим особое внимание на разрядность: если серверная система имеет разрядность x64, а клиент x86 (или наоборот), на вкладке «Дополнительные драйверы» принтера необходимо заранее добавить драйверы соответствующей архитектуры.
После подключения пользователь внутри удаленного сеанса выбирает данный сетевой принтер и отправляет документы на печать напрямую через виртуальную сеть.
Способ 4. Использование специализированного ПО виртуализации печати
В корпоративной практике для устранения проблем несовместимости драйверов широко применяются решения виртуализации печати, такие как ScrewDrivers (включая версии для рабочих станций), TSPrint или ThinPrint.
Проанализируем принцип работы этого подхода:
- На стороне удаленного хоста устанавливается серверная часть утилиты, регистрирующая универсальный виртуальный драйвер.
- На рабочем месте пользователя запускается клиентский модуль.
- При отправке документа на печать из любой программы виртуальный драйвер формирует платформонезависимый поток данных (PDF/EMF), сжимает его и передает по собственному независимому каналу на клиентскую станцию.
- Клиентский модуль принимает задание и передает его на локальный драйвер принтера штатными средствами локальной ОС.
Такой подход полностью снимает проблему различия разрядностей систем, исключает необходимость установки драйверов каждого конкретного принтера на хост-машину и обходит ограничения базовых редакций Windows.