Мой опыт подключения сканеров штрих-кода в RDP. Проброс USB устройств по сети с помощью USB Network Gate Режим разрыва клавиатуры

Thanks to advanced features it offers, the software does all you would expect from a high-quality USB over RDP redirector.

Additionally to making USB peripherals available over the network, UNG lets you setup your remote desktop so that it can automatically recognize shared devices and connect to them in moments.

Another major advantage of this USB over remote desktop solution is the ability to limit access to a USB device when working in the multi-user environment. This is particularly useful when you redirect a peripheral to a terminal server and want to temporarily shield your device from other users of the remote system.

More than that, the Linux version of the software works perfectly well with RemoteFX USB Redirection (MS-RDPEUSB), which makes it possible to remotely manage USB devices attached to your Linux host from Windows client OS.

What can USB Network Gate do for you?

  • Enable USB remote connection over IP/ LAN/ WAN/ VLAN/ VPN/ Internet
    USB Network Gate can also restrict a remote USB connection – just set up a password.

  • Provide access to USB ports in virtual machines and blade servers
    With the whole bunch of benefits, virtual environments offer, we just love them – the only thing we can complain about is no access to USB ports. USB Network Gate makes it possible – accessing a USB device contents or functionality in a virtual environment. Once you install the app on a guest operating system, USB peripherals become accessible to you right away. VMware, VMware ESX, Citrix XenDesktop and Microsoft Hyper-V are supported.

  • Access USB over Remote Desktop Protocol
    Same with RDP – no access to local USB ports. USB Network Gate helps you solve this problem too and goes even further – your remote machine can automatically detect and connect to remote USB device instantaneously the moment it is inserted in a port. A positive thing for gamers is how to connect a Game controller via RDP .

  • Work with remote USB over Wi-Fi
    USB devices can be shared and accessed over a wireless network. Relief for your system administrators – there is no need to change configurations. Plug in a device into a computer, share it with the help of USB Network Gate and all other network users can access its contents and functionality.

How do you do it?

USB Network Gate is a cross platform solution that supports Windows, Mac OS X and Linux. It means that you, for example, can share a USB device inserted into a Windows PC or MacBook and access its contents and functionality from a Linux device or vice versa.

2. USB for Remote Desktop by FabulaTech

It’s pretty rare nowadays to find a really efficient app designed for redirecting USB devices via Microsoft RDP protocol. USB for Remote Desktop by FabulaTech is just ideal for remote desktop USB passthrough. Consisting of Server and Workstation parts, the app allows managing local peripherals from a remote machine with no difference as if they were really plugged in it. USB for Remote Desktop does not require any complicated configuration and can easily redirect virtually any USB peripheral over Microsoft RDP, Citrix ICA, or Teradici PCoIP. Plus, the software is compatible with Windows and Linux remote desktops.

3. USB Redirector RDP Edition by
Incentives Pro

There is a number of reasons why you might need to access devices connected to the host PC from your remote desktop, Virtual Machine or Terminal Server. USB Redirector RDP Edition by Incentives Pro is an app that will definitely help you do this quickly and easily. The software is one of the best remote desktop USB redirection solutions for working in the virtual environment in the single-user mode. The app supports various Windows OS versions, including Windows 10, Windows 2016 Server and more.

4. Microsoft RemoteFX

If it’s necessary to redirect the functionality of a USB device to a virtual desktop, you can also try RemoteFX add-on for Windows Server 2008. A computer with a peripheral inserted works as a thin-client when you use the add-on to make the device available for access from your virtual machine. In spite of all the advantages of this solution, you should keep in mind that this way has its special requirements and limitations for RDP USB passthrough. For instance, to provide remote desktop USB access, you will need to insert the peripheral into your local PC first and then start the RDP session. The sequence of actions is very important in this case, otherwise the RDP USB redirection isn’t possible.

Therefore, the software versatility deriving from its feature set is obviously the deciding factor between all the methods of sharing devices over RDP. Considering this important aspect in combination with the ease of use, you can see that the real power lies in USB Network Gate, an advanced software designed to meet all your remote desktop USB redirection needs effortlessly and efficiently.

USB Network Gate — программа, позволяющая пользователям подключать USB устройства, подключенные к другим компьютерам используя каналы IP.

На рынке существуют разные реализации удаленного подключения USB устройств, как аппаратные, так и программные. Некоторые из них требуют от пользователей определенных знаний и навыков, в некоторых случаях настройка может занять много времени. USB Network Gate удивил меня своей простотой. Скачал программу, установил, нажал на кнопку Share и устройство сразу доступно для подключения на удаленной машине с установленным клиентом.

USB Network Gate может оказаться незаменимым например при использовании USB токенов на сервере RDP, программа позволяет настроить монопольный доступ к устройствам для отдельного пользователя удаленного рабочего стола, изолируя его от остальных пользователей. Программу можно так же использовать в виртуальной среде, если по каким то причинам устройство невозможно подключить напрямую. Существуют версии для Windows, Linux (RPM и Deb пакеты), Apple OS X и что особенно интересно, для Android. Теперь о том, как это работает.

Сервер

Программа является одновременно и сервером и клиентом. При запуске по умолчанию показывает все USB устройства, подключенные к компьютеру. Но можно отображать и настраивать общий доступ ко всем портам.

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

Клиент

При использовании USB Network Gate в качестве клиента, приложение сканирует локальную сеть на наличие серверов отображает все доступные для подключения устройства. Если сервер находится в другой подсети, например при соединении через VPN, можно добавить его с помощью кнопки “Add server”. После того, как я открыл доступ к принтеру, он появился в списке доступных для подключения на моем MacBook. Помимо принтера я подключал USB жесткий диск с разделами HFS+, он так же подключился, но разделы монтировались около трех минут, видимо из-за их большого объема.

По умолчанию веб-камера не подключается к удаленному рабочему столу, связано это с безопасностью.

Для добавления подключается USB устройств к удаленному рабочему столу проделайте следующие шаги:
1. Открываем поиск или Выполнить (Win + R ) и вводим gpedit.msc и жмем Enter

2. В открывшемся окне слева выбираем
Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу -> Перенаправление USB-устройств RemoteFX


3. Разрешает RDP-перенаправление других поддерживаемых USB-устройств RemoteFX с данного компьютера . Нажимаем правой кнопкой мыши и выбираем Изменить
выбираем слева Включено и чуть ниже из выпадающего списка Администраторы и пользователи (если есть необходимость выбираете Только Администраторы , но в этом случае Ваша учетная запись пользователя должна быть Администратором).


4. Жмем ОК . Запись сохранится. Теперь все закрываем и перезагружаем компьютер. Внесенные изменения вступят в силу после перезагрузки.
5. После перезагрузки открывает Подключение к удаленному компьютеру RDP, для этого можно нажать (Win + R ) ввести mstsc и нажать Enter .
6. В появившемся окне подключения внизу нажимаем на Показать параметры .
7. Данное окно раскроется и появятся дополнительные вкладки. Выбираем вкладку Локальные ресурсы .
8. Внизу вкладки есть подраздел Локальные устройства и ресурсы и нажимаем на кнопку Подробнее . В новом окне выбираем и ставим галочку напротив Составное USB устройство (название может быть другим). Если у вас нет такого пункта, то стоит проверить правильность подключения веб-камеры на локальном компьютере, а также правильно ли вы настроили разрешение на подключение USB-устройств (см. выше). Нажать Ок.
(В файл rdp добавляется запись путь к экземпляру устройства: usbdevicestoredirect:s:USB\VID_046D&PID_0825\49E82B20 . У вас название будет другое)


9. Подключаемся.
10. Появится такое предупреждение, что Вы собираетесь подключить к удаленному рабочему столу свои USB-устройства и спрашивает доверяете ли Вы подключению. Ставим галочку, чтобы сообщение больше не показывалось при следующих подключениях и жмем Подключить.
11. Теперь запускаем приложение и проверяем, если все сделали правильно, то web камера обнаружится.

1. Подключение сканеров Datalogic.

В самом начале, т.к. сканер беспроводной, необходимо подружить сканер с подставкой. Включаем подставку в USB и в соответсвии с руководством пользователя привязываем сканер к базе. Для этого необходимо считать управляющие штрихкоды и ввести ПИН-код сканера из 4-х цифр. Цифры задаём так же считывая штрих коды из таблицы, приведённой в руководстве. Т.к. сканеров у нас было несколько, то для каждого был заведён свой пин-код. После ввода пин-кода сканер сообщит о подключении к подставке радостным пиканьем:) Далее считываем управляющие штрихкоды для перевода сканера в режим "USB в эмуляции COM" и на всех рабочих станциях, где подключено оборудование установливаем драйвера эмуляции COM порта. Драйвера брали последние с официального сайта Datalogic. Сканер имеет три режима работы при потери связи с базой:

  1. При потери связи не передавать ничего.
  2. Передавать считанные штрихкода при восстановлении связи
  3. Собирает все штрих коды во внутренней памяти и выгружает на компьютер после считывания управляющего штрихкода о выгрузке.

Режимы настраиваются так же путём считывания управляющих штрихкодов из руководства. При тестировании второй режим не всегда передавал данные, в третьем так же были замечены потери данных при передаче (видимо 1С не успевает отрабатывать поток штрихкодов), оставили работать в первом режиме. В этом случае, если штрихкод не передан на базу, сканер сообщает длительным бипом, удачная передача сопровождается двойным бипом.

Проброс COM портов осуществляется установкой флажка порты на закладке локальные ресурсы rdp.

Так же на сервере необходимо проверить разрешение на подключение COM портов удалённого клиента: Администрирование-Службы терминалов-Конфигурация служб терминалов, закладка Параметры клиента:

Т.к. порты виртуальные, то на сервере в диспетчере задач они не появляются, но исправно работают. Проверить, что порты подключены можно в реестре в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM или различными утилитами. Т.к. устройств несколько, то на каждой рабочей станции желательно присвоить им разные номера COM портов, что б при одновременном подключении они не комфликтовали.

2. Подключение сканера Honeywell.

Тут процедура по сути аналогичная, не требует заморочек с подключением подставки, но так же необходимо перевести сканер в режим "USB в эмуляции COM" путём считывание управляющего штрих кода и установить драйвера эмулятора на рабочих станциях. Тут возникла другая проблема в связи с тем, что сканеры переключаются между компьютером кассы и приёмке, при возвращении сканера на место слетает установленный в диспетчере устройств номер COM-порта. Сейчас реализовано следующее, сканер был определен во всех USB портах, далее в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\ находим нужное устройство, в нем подчинённые ветки для каждого USB порта, для каждого меняем параметр FriendlyName (влияет только на отображение устройства в диспетчере задач) и во вложенной ветке \Device Parameters\ меняем параметр PortName на нужный номер COM порта. Пока порты не слетали. Если будут другие предложения, готов обсудить.

3. Подключение ФР.

При подключении ФР Штрих в терминальном доступе, для корректной работы ФР в драйвере необходимо увеличить таймаут (в зависимости от скорости соединения порядка 1000~3000мс) Рекомендую установить драйвер Штрих в начале локально на рабочей станции. Настроить параметры обмена и таймаут, потом передать выбранные параметры на ФР нажатием кнопки Установить параметры в настройках свойств драйвера. И только потом устанавливать драйвер на сервере и проверять соединение. Если на ФРе установлен маленький таймаут, то установка параметров сразу из терминала может не сработать, о чём драйвер не сообщает.


По информации с сайта тех. поддержки Штриха, при использовании контроллера доменов, для корректного проброса COM портов необходимо что б рабочая станция вошла в домен иначе порт не пробрасывается. У нас проверить не получилось, т.к. используются рабочие группы и порты пробросились без проблем.

4. Разделение оборудования по сессиям.

В типовых конфигурациях до сих пор не реализован механиз разделения оборудования по сессиям, и в нашем случае при открытии товарных документов любым пользователем, 1С пытается включить всё подключенное к текущему компьютеру оборудование (в нашем случае это 8 сканеров и два ФР) естественно сделать этого не может, о чём радостно сообщает пользователю несметным количеством ошибок.

Было решено использовать следующий алгоритм. Т.к. оборудование подключено к рабочим станциям, то перед подключением оборудования получаем имя компьютера с которого подключается сеанс. Для этого обращаемся к переменной среды CLIENTNAME. В регистр сведений Торговое оборудование добавлено строковое поле ИмяКлиента. И в модуле обработки СерверТО в процедуре ПодключитьОборудование() добавлена проверка на совпадение имени подключенного клиента с именем клиента для оборудования:

// Добавим проверку по клиенту, если это терминал. Если ЗначениеЗаполнено(СтрокаТО.ССБ_ИмяКлиента) Тогда WshShell = Новый COMОбъект("WScript.Shell"); ИмяКомпьютераКлиента = WshShell.expandEnvironmentStrings("%CLIENTNAME%"); Если НЕ СтрокаТО.ССБ_ИмяКлиента = ИмяКомпьютераКлиента Тогда Продолжить; КонецЕсли; КонецЕсли;

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

Сканер подключается к компьютеру или непосредственно в реальный COM -порт или в USB , но даже в этом случае он занимает виртуальный COM -порт (VCOM ).

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

Настройка сканера ШК в 1С

Существует два способа подключения сканера штрих-кода к 1С - через работы в режиме разрыва клавиатуры и через COM -порт.

Режим разрыва клавиатуры

В режиме разрыва клавиатуры сканер просто набирает клавиши, которые соответствуют символам штрих-кода. Не требуется никаких драйверов, чтобы сканер заработал в 1С.

Во всех типовых конфигурациях по кнопке F 7 открывается окно ввода штрих-кода. Поэтому достаточно сканеру запрограммировать префикс F 7 и все, он будет поддерживаться 1С.

Если конфигурация дорабатывалась и в некоторых участках забыли прописать типовую поддержку F 7, проще дописать эту поддержку. Но в качестве альтернативы можно использовать драйвер Атол старых версий, где выбрать в качестве порта «Разрыв клавиатуры».

Новые версии драйверов Атол платные, а бесплатные делают 10-секундную задержку перед обработкой штрих-кода.

Способ прост для подключения, но неудобен в работе.

  • Нужно следить, чтобы была включена правильная раскладка клавиатуры.
  • При использовании префикса курсор должен стоять внутри таблицы, иначе F 7 не срабатывает.
  • Буквы при наборе в RDP часто теряются, и сканер считывает усеченные штрих-коды.

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

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

Режим COM-порта

Работает более быстро и надежно. Событие в 1С подхватывается независимо от раскладки клавиатуры и текущего активного элемента в форме.

Настраивается просто - указывается COM -порт и все.

Но есть нюансы.

Драйвер Атол можно использовать только старых версий. Для сканера это не имеет особого смысла, поэтому лучше применять бесплатный драйвер Scanopos от 1с.

Но я столкнулся с ситуацией, когда в некоторых комбинациях компьютеров и атоловский драйвер подключал сканер только один раз, а потом COM -порт оказывался занятым, а драйвер scanopos вообще вешал терминальную сессию. Причем такая проблема возникала только на дорогих сканерах. Просто CipherLab 1000 работал нормально.

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

Действительно, я скачал компоненту и даже в моих проблемных связках все заработало. Автор утверждает, что проблема возникает, когда сканер подключен не в реальный COM -порт, а в виртуальный (VCOM ).

Конечно, немного странно использовать noname -решение, но оно работает, а сканер в COM удобнее для пользователя, чем в разрыв клавиатуры, поэтому почему бы и нет. Может быть, через 2 года, когда эта версия станет неактуальна, 1с починит свой scanopos для нормальной работы с VCOM по RDP .

Но возникла другая проблема - в 1С от сканера не доходил первый символ 0 штрих-кода. Видимо, драйвер преобразовывал штрих-код в число и терял ноль.

Я достаточно много времени потратил на поиск решения, но все решилось просто - достаточно установить любой префикс и прописать этот префикс в подключении торгового оборудования. Я использовал для общности F7.

Настройка префикса штрих-кода

Чтобы настроить префикс F 7 пришлось помучаться.

У всех сканеров код этой клавиши разный, поэтому я заглянул в таблицу шестнадцатеричных кодов:

Но ошибся и вместо шестнадцатеричного 15 (десятичного 21) запрограммировал префикс 51. Потом понял, что не то, когда сканер в разрыв клавиатуры не нажимал F 7.

Сама процедура программирования префиксов тоже описана неявно, пришлось писать себе памятку, переводя язык инструкции на нормальный человеческий:

В моем случае я пропускал Validate , а без этого префикс не ставился.

Дополнительные замечания

Ездить каждый раз к пользователям сканеров не получалось. Поэтому я научил одного сотрудника на месте распечатывать нужные страницы из руководства и сканировать нужные мне последовательности команд.

Есть специальная программа Scan Master , которая может назначать префикс и делать другие настройки для разных моделей сканеров. Но она работает только со сканерами, подключенными через COM , а не в разрыв клавиатуры.

Для проверки, работает или нет сканер, можно использовать все же драйвер Атол, программа «Драйвер устройств ввода». Нажать «Настройка свойств» - «Поиск оборудования», и далее просканировать любой штрих-код. Если сканер подключен нормально, будет отображен штрих-код.

Последние материалы раздела:

Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных
Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных

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

Контекстное меню в Windows
Контекстное меню в Windows

Из этой информационной статьи вы узнаете о том, как вызвать контекстное меню для любого файла, папки, ярлыка и т.п используя для этого несколько...

Продвижение в Instagram: самая подробная инструкция
Продвижение в Instagram: самая подробная инструкция

XXI век - стремительно меняющийся и ломающий прежние представления об успехе. Социальные сети стали феноменом, люди часами проводят время в режиме...