Проброс COM-порта через RDP: сканеры штрих-кода, фискальные регистраторы (1С)
Архитектура перенаправления портов RDP (Serial Port Redirection)
Для работы торгового оборудования (сканеры штрих-кода Mertech/Honeywell, фискальные регистраторы Атол/Штрих-М, эквайринговые терминалы), подключенного к локальному ПК, внутри удаленной терминальной сессии (RDP) на сервере (например, в 1С:Предприятие) используется перенаправление COM-портов. Протокол RDP создает виртуальный COM-порт на сервере, который маппится на физический порт клиента. Если оборудование не работает в 1С на сервере, проблема кроется либо в отключенном маппинге в настройках клиента (mstsc), либо в запрещающих групповых политиках (GPO) на сервере (RDSH). Бизнес-риски: остановка розничных продаж, невозможность пробить чек, ошибки работы склада (WMS).
Типы подключения оборудования
| Тип интерфейса | Требуется ли драйвер на ПК? | Как видится в RDP |
|---|---|---|
| Физический RS-232 (COM) | Нет (встроенный в ОС) | COM1, COM2 и т.д. (настраивается маппинг) |
| USB с эмуляцией COM (VCOM) | Да (драйвер от вендора Mertech/Atol) | Создает виртуальный COM-порт на клиенте, который пробрасывается в RDP. |
| USB в режиме Keyboard (HID) | Нет (ввод как с клавиатуры) | Не требует проброса COM! Вводит символы в активное окно. |
Алгоритм проброса и диагностики COM-портов
Сценарий 1: Настройка клиента (mstsc.exe)
Самая частая причина — не стоит нужная галочка в свойствах подключения RDP.
- Откройте клиент RDP (mstsc.exe) на компьютере, к которому подключен сканер.
- Нажмите Показать параметры (Show Options).
- Перейдите на вкладку Локальные ресурсы (Local Resources).
- Внизу в разделе Локальные устройства и ресурсы нажмите кнопку Подробнее... (More...).
- Поставьте галочку напротив Порты (Ports).
- Подключитесь к серверу.
Сценарий 2: Диагностика маппинга на сервере (change port)
Нужно убедиться, что сервер реально видит проброшенный порт. В терминальной сессии откройте CMD.
Просмотр всех проброшенных COM-портов
change port /query
Вывод должен быть примерно таким:
AUX = \DosDevices\COM1
COM1 = \Device\RdpDrPort\;COM1:1\tsclient\COM1
COM3 = \Device\RdpDrPort\;COM3:1\tsclient\COM3Если в выводе change port видны ваши порты с пометкой \tsclient\COMx, значит проброс работает. Теперь в настройках 1С (Подключаемое оборудование) нужно указать именно этот COM-порт.
Сценарий 3: Разблокировка портов через GPO на сервере
Если галочка стоит, но change port порты не видит, возможно, проброс запрещен администратором сервера.
1. Откройте gpedit.msc на терминальном сервере.
2. Перейдите: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows ->
Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление устройств и ресурсов.
3. Политика "Не разрешать перенаправление COM-портов" (Do not allow COM port redirection)
должна быть Отключена (Disabled) или Не задана.Типовые ошибки администраторов
- Одинаковые номера портов: Если на сервере физически есть свой порт COM1, и с клиента пробрасывается COM1, возникнет конфликт. В Диспетчере устройств локального ПК смените номер виртуального COM-порта сканера на высокий (например, COM15) и пробросьте его.
- Забытый драйвер USB-COM: Если сканер подключен по USB в режиме эмуляции COM, на ЛОКАЛЬНОМ ПК (откуда идет подключение) обязательно должен стоять драйвер (VCP Driver). Без него ПК не создаст COM-порт, и в RDP пробрасывать будет нечего.
Проброс десятков COM-портов стандартными средствами RDP часто дает сбои (обрывы связи при таймаутах). Инженеры ITSTM настроят надежный USB-проброс через сторонние решения (FabulaTech, USB over Network) или переведут оборудование в режим Ethernet/Wi-Fi для стабильной работы 1С:Предприятие.
Частые вопросы (FAQ)
Нужно ли ставить драйверы сканера штрих-кода на сам сервер RDP?
Обычно нет. Серверу нужен только номер COM-порта, который ему отдает RDP-клиент. Драйверы эмуляции (VCOM) ставятся на локальный ПК кассира. А вот в саму 1С на сервере нужно установить компоненту (внешнюю обработку) для работы с данным оборудованием.
Сканер Mertech в 1С присылает 'мусор' или иероглифы.
Это проблема настроек скорости порта (Baud rate). Скорость (например, 9600 или 115200 бит/с), настроенная в Диспетчере устройств локального ПК, должна строго совпадать с настройками COM-порта в драйвере торгового оборудования 1С на сервере.
Почему сканер работает в Блокноте на локальном ПК, но не работает в 1С через RDP?
Если он работает в Блокноте (печатает цифры), значит он настроен в режим эмуляции клавиатуры (HID / Keyboard Wedge), а не COM-порта! В этом режиме проброс COM не нужен. Просто поставьте курсор в поле 1С в RDP-сессии и сканируйте. Либо переведите сканер в режим COM-порта (считав специальный штрих-код из инструкции).
Можно ли пробросить COM-порт в RemoteApp?
Да, механизмы те же. Но вам нужно убедиться, что в файле .rdp, запускающем RemoteApp, присутствует строка 'redirectcomports:i:1'.