Что делать если USB-устройство определяется как CD-rom?

Если USB-устройство при удалённом подключении определяется как "пустой CD-ROM", это обычно связано с особенностями его инициализации. Такое поведение часто встречается у Rutoken TLS, когда устройство не успевает корректно пройти цикл отключения и повторной подачи питания перед подключением к удалённому ПК.

1. Почему это происходит

При локальном подключении устройство физически вставляется в USB-порт компьютера и корректно инициализируется. При работе через USB over IP необходимо максимально точно воспроизвести это поведение: снять питание с порта, затем снова подать его и только после этого подключать устройство к ПК.

2. Рекомендуемый порядок действий

  1. Отключите устройство от USB-порта или виртуального порта.
  2. Подождите 2-3 секунды, чтобы питание устройства полностью сбросилось.
  3. Подключите устройство заново, то есть снова подайте питание на USB-порт.
  4. После появления устройства в клиентском приложении подключите USB-порт к ПК.
  5. Подождите до 10 секунд. В этот момент в проводнике может временно отображаться пустой CD-ROM, который затем должен автоматически смениться на смарт-карту.
  6. Если спустя 10 секунд устройство всё ещё определяется как CD-ROM, повторите процедуру с шага 1.
  7. После корректного определения устройства попробуйте выполнить нужные операции.

3. Функция автоматического перезапуска порта

Начиная с версии ПО 5.03 и 4.12 и выше этот алгоритм уже реализован при помощи функции "Автоматический перезапуск порта".

  1. В WEB-интерфейсе откройте раздел "USB" - "USB порты".
  2. Для нужного USB-порта включите галочку "Автоматический перезапуск порта".
  3. В клиентском приложении подключите USB-порт.
  4. Затем отключите USB-порт, чтобы снять питание.
  5. После повторного включения USB-порта снова подключите его к ПК.
  6. Проверьте, что устройство определяется как смарт-карта.

4. Дополнительный вариант через скрипт

Для повышения стабильности работы Rutoken TLS может использоваться специальный BAT-скрипт, который настраивается через config.ini, клиентское приложение и утилиту usbcontrol автоматически перезапускает USB-порт и подключает его к ПК.

В файле config.ini указываются параметры подключения, например:

ip=192.168.1.180 usb-number=1.1 hostname=distkontrolusb64 group=Gr-01 usb-address=1111 password=pass

Чтобы получить точные значения hostname, group и usb-address, выполните команду:

path\to\dkcl.exe -t "LIST"

В выводе команды будет строка вида "USB 1.01 (distkontrolusb64-Gr-01.1111)", где:

  • USB 1.01 - номер USB-порта, для config.ini указывается как usb-number=1.1.
  • distkontrolusb64 - значение hostname.
  • Gr-01 - значение group.
  • 1111 - значение usb-address.

Параметр password задаётся в WEB-интерфейсе в разделе "Сервисы" - "SSH" - "Пароль".

5. Дополнительная рекомендация

Также можно проверить работу Rutoken TLS с отключённой автоматической установкой драйверов USB-устройств в Windows.

  1. Нажмите сочетание клавиш Win + R.
  2. Введите команду sysdm.cpl.
  3. Откройте раздел "Оборудование" - "Параметры установки устройства".
  4. Выберите вариант "Нет".
  5. Перезагрузите ПК.

6. Результат

  • После корректного перезапуска питания устройство должно определяться как смарт-карта, а не как CD-ROM.
  • Автоматический перезапуск порта и BAT-скрипт могут существенно повысить стабильность работы Rutoken TLS.
  • Дополнительная настройка ОС также может улучшить результат на удалённом ПК.