Вопрос или проблема
У меня Windows 7 работает в VirtualBox. Windows 7 содержит приложение, для работы которого требуется смарт-карта.
В системе хоста есть считыватель смарт-карт, и под Linux (родная ОС) я могу видеть как считыватель, так и карту.
В VirtualBox, если в считывателе смарт-карт есть карта, я могу подключить считыватель как USB-устройство. Это находится в меню Устройства => USB-устройства => Generic EMV Smartcard Reader. Windows 7 может затем увидеть считыватель смарт-карт, но никогда не видит саму карту.
Вот вывод Windows с “certutil -scinfo”:
Менеджер ресурсов смарт-карт Microsoft работает.
Текущее состояние считывателя/карты: Считыватели: 1
0: Generic EMV Smartcard Reader 0
--- Считыватель: Generic EMV Smartcard Reader 0
--- Состояние: SCARD_STATE_EMPTY
--- Состояние: Нет карты.
--- Карта:
=======================================================
Анализ карты в считывателе: Generic EMV Smartcard Reader 0
--------------===========================--------------
Готово.
Команда CertUtil: -SCInfo успешно выполнена.
Я попробовал перезагрузить Windows, запустить и остановить службу смарт-карт, вынуть и вставить обратно карту. Ничего не сработало, и я не смог найти в интернете ничего полезного.
Обновление
Перезагрузил главный компьютер (Linux) и снова запустил VirtualBox. Без эффекта.
Я также удалил драйвер MS (Micorsoft Usbccid Smartcard Reader (WUDF)). Затем я “отключил” USB-считыватель карт и снова “подключил” его. Windows переустановил тот же драйвер и снова не удалось.
Обновление 2
Иногда удаление драйвера Windows помогает. Все еще похоже на серию случайных событий, чтобы заставить это работать правильно.
Так что после “подключения” и “отключения” считывателя от виртуальной машины и удаления и вставления карты, он наконец-то заработал. Понятия не имею, что изменилось или почему, но похоже, что выполнение “танца с бубном” с оборудованием в конце концов убедит Windows увидеть считыватель и карту.
Обновление
Все еще серьезные проблемы с ним. Кажется, что между подключением и отключением, удаление драйвера Windows также помогает “расшатать” неправильное состояние. Но это все еще кажется случайным образом.
Это ужасный пользовательский опыт.
Гостевая ОС из любой виртуальной среды не позволяет видеть существующие порты и подключенные устройства. Вы будете подключать и отключать непрерывно, и это может не дать результата.
Итак, если у вас все еще возникли проблемы, попробуйте это стороннее программное обеспечение. Оно может быть хорошим помощником. http://www.flexihub.com/access-remote-emv-smart-cardreader.html
Я уже пробовал его с VirtualBox сегодня – для меня сработало, но я использую считыватель карт EMV, и моя ОС хоста – Mac, если это важно. Гостевая ОС (Windows) видит устройство (считыватель) как подключенное напрямую.
Мой опыт показывает, что гостевая Windows не получает уведомления о вставке смарт-карты. У меня есть два трюка для решения этой проблемы:
- при использовании внешнего USB-считывателя вставьте смарт-карту в считыватель, пока он отключен, подключите считыватель, затем система USB Windows правильно запускает “обнаружение нового устройства”, и все отображается
- при использовании внутреннего считывателя на моем хосте вставьте смарт-карту, перейдите в Диспетчер устройств гостевой Windows, выполните “Сканирование для изменения оборудования”, затем устройство смарт-карты отображается
Мне не нужно устанавливать/удалять устройство считывателя смарт-карт в гостевой. Мне также не всегда нужно пересканировать.
Я ищу способ упростить пересканирование, возможно, devcon rescan
от администратора подойдет (и затем быстрый способ получить devcon.exe становится интересным).
.
Ответ или решение
Если вы столкнулись с проблемой, когда в Windows 7, работающей в виртуальной машине VirtualBox, распознается считыватель смарт-карт, но сама смарт-карта не видна, это может свидетельствовать о нескольких возможных причинах и потребует ряда решений для определения и устранения корня проблемы. Опишем более подробно возможные действия, которые должны помочь в данной ситуации.
F – Features and Benefits (Особенности и Преимущества)
Первое, что следует учесть, это то, что Windows 7 должна корректно распознавать устройства через USB, подключённые через VirtualBox. В вашем случае считыватель распознаётся как Generic EMV Smartcard Reader, но карта — нет. Это может быть связано с тем, что Windows не получает уведомления о вставке карты, или драйверы не полностью поддерживают устройство.
O – Offer (Предложение)
-
Проверьте настройку USB в VirtualBox:
- Убедитесь, что вы используете последнюю версию VirtualBox и дополнения к гостевой ОС (Guest Additions).
- Убедитесь, что USB-контроллер в настройках виртуальной машины соответствует версиям вашего оборудования (USB 2.0 или USB 3.0).
-
Переподключите считыватель:
- Отключите считыватель от виртуальной машины и отсоедините USB от хоста. Вставьте карту в считыватель, затем подключите считыватель обратно к хосту, а затем к VirtualBox.
-
Рестарт службы Smart Card:
- В Windows 7 откройте "Управление компьютером" (
compmgmt.msc
) и перейдите в "Службы". - Найдите службу "Smart Card", перезапустите её, а затем попытайтесь снова считать карту.
- В Windows 7 откройте "Управление компьютером" (
R – Reason to believe (Аргументы)
Исходя из опыта многих пользователей, VirtualBox может столкнуться с проблемами доступа к устройствам, связанным с USB, особенно когда устройство меняет состояние (вставлено/удалено). Иногда операция "Обнаружения нового оборудования" в Guest OS может не срабатывать автоматически.
E – Emotional connection (Эмоциональная связь)
Проблемы такого плана могут вызывать чувство разочарования, поскольку полноценная работа приложения, требующего смарт-карту, нарушается. Однако стоит отметить, что решение часто скрывается в деталях конфигурации и последовательности действий.
S – Specifics (Конкретика)
-
Сканирование изменений оборудования:
- В открывшемся диспетчере устройств Windows выполните команду "Сканировать на предмет изменений оборудования" (может помочь командная утилита
devcon rescan
).
- В открывшемся диспетчере устройств Windows выполните команду "Сканировать на предмет изменений оборудования" (может помочь командная утилита
-
Третий вариант: использование программного обеспечения третьих сторон
- Рекомендуется попробовать использовать утилиту FlexiHub для облегчения доступа VirtualBox к смарт-картам в конфигурациях.
По всем вышеперечисленным пунктам, если проблема остается, возможно, стоит задуматься о переходе на более новую версию Windows, так как Windows 7 устарела и может иметь проблемы с поддержкой современных драйверов и USB-устройств.
Подходя решительно и систематически к решению проблемы с подключением смарт-карт в VirtualBox, можно добиться стабильной и эффективной работы приложений, требующих авторизации смарт-картами.