RemoteFX. Часть 6 — перенаправление USB, практика


Что нужно сделать для перенаправления устройств с помощью RemoteFX? Для начала — удовлетворить базовым требованям RemoteFX: установить соответствующий компонент на сервере Hyper-V и заполучить клинтское устройство, поддерживающее RDP версии 7.1 (самый реалистичный вариант на сегодняшний день — установить на свой компьютер Winodws 7 Service Pack 1). Затем потребуется включить функцию USB Redirection в клиенте RDP, разрешить её же в виртуальных машинах и, наконец, выбрать те устройства, которые вы хотите перенаправлять, — вручную или отредактировав файл подключения (*.rdp).

Настройки на стороне клиента

При редактировании групповой или локальной политики с Windows 7 Service Pack 1 или Windows Server 2008 R2 Service Pack 1 в ней появляются настройки пернаправления устройств через RemoteFX. Эта политика применяется на клиентское рабочее место — то, с которого вы устанавливаете сессию, и к которому вы физически подключаете устройства. Эту функцию требуется разрешить в явном виде — по умолчанию низкоуровневое перенаправление устройств запрещено. Кроме того, вы можете выбрать, разрешено оно для всех пользователей или только тех, которые имеют права локальных администраторов. 

Эта политика находится по адресу Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Connection Client\RemoteFX USB Device Redirection. Обратите внимание на то, что изменения этой политики вступают в силу только после перезагрузки. 

Настройки на стороне виртуальной машины

Для того, чтобы ограничить возможности подключения перенаправленных устройств, используйте настройки, которые находятся в секции Computer Configuration\Administrative Templates\System\Device Redirection\Device Redirection Restrictions. Первая из них действует избирательно — вы можете запретить перенаправление целых классов устройств или даже отдельных ID. Если же вам нужно полностью запретить перенаправление любых типов устройств через RemoteFX — используйте вторую настройку.

При этом помните, что перенаправление старым способом — через «Виртуальные устройства» — по-прежнему будет работать. Для управления этим типом перенаправления используйте настройки, которые находятся по адресу Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Device and Resource Redirection.

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

Кроме того, вы можете использовать настройки «Установки устройств» (Device Installation), которые появились в Windows Vista и были усовершенствованы в Winodws 7. Поскольку перенаправление устройств в RemoteFX работает через установку обычного драйвера на стороне виртуальной машины, эта функция полностью подчиняется указанной политике. Эти настройки находятся в разделе по адресу Computer Configuration\Administrative Templates\System\Device Installation Restrictions.

Выбор устройств в клиенте «Удалённого рабочего стола»

После того, как вы разрешели перенаправление устройств, в настройках клиента «Удалённого рабочего стола» появляется новая возможность. Здесь вы видите текущий список устройств, подключенных к вашему клиентскому рабочему месту, и можете отметить те из них, которые желаете перенаправить в удалённый сеанс.

Также обратите внимание на то, что если вы перенаправляете звуковое устройство USB (например, микрофон или гарнитуру), и хотите воспользоваться RemoteFX, то в настройках клиента «Удалённого рабочего стола» (или через политику) вы должны отключить перенаправление звуковых устройств. Потому что эта настройка относится к старому способу, который работает через «виртуальные устройства». А вам в данном случае требуется обратное — сделать так, чтобы приложения работали с устройством, перенаправленным в удалённый сеанс, через драйвер, который выполняется в том же сеансе.

Управление запретами и разрешения через файлы подключения

Этот вариант можно использовать как в дополнение к описанной выше настройке через политики, так и вместо неё. Особенности этого метода заключаются в том, что он, во-первых, позволяет гранулировано разрешать и запрещать перенаправление отдельных устройств на стороне клиента (через политики это делается на стороне сервера, как было описано выше). А во-вторых, он позволяет задавать на стороне клиента разные настройки для разных виртуальных машин — аналогично настройкам через файлы подключений.

Для того, чтобы воспользоваться этим методом, откройте файл подключения (*.rdp) в текстовом редакторе и добавьте параметр usbdevicestoredirect:s:X;Y;Z. Этот параметр появился RDP 7.1 и способен принимать (на месте «X;Y;Z») четыре типа значнеий. 

Порядок обработки

Значение

Действие

1

   

  

*

Перенаправлять все устройства, которые невозможно перенаправлять стандартным высокоуровневым способом RDP (включая те, драйверы для которых отсутствуют).

{Device Class GUID}

Перенаправлять все устройства определённых классов

USB\InstanceID

Перенаправлять конкретно указанные экземпляры устройств

2

-USB\InstanceID

Запретить перенаправление конкретных указанных экземпляров устройств

Предполагаемый порядок нахождения оптимальных настроек таков. Для начала укажите usbdevicestoredirect:s:*.

  • Если вы подключаетесь с тонкого клиента, который по определению не имеет драйверов для абсолютного большинства устройств, — все они будут перенаправлены в удалённый сеанс. Собственно говоря, на этом настройка завершена. Предполагается, что в сценарии с тонкими клиентами, пользователь будет устанавливать одновременно только один сеанс «Удалённого рабочего стола» — и RemoteFX будет основным способом перенаправления устройств.
  • Если же вы подключаетесь с обычного настольного компьютера или ноутбука, то какая-то часть устройств будет распознана клиентской ОС как подходящие для перенаправления через «виртуальные устройства» (высокоуровневое перенаправление). И здесь предполагается, что именно «виртуальные устройства» останутся основным способом перенаправления. Впрочем, всё довольно гибко настраивается.
    • Если вам нужно изменить тип перенаправления для некоторых из этих устройств — т.е. использовать для них перенаправление RemoteFX — в явном виде добавьте их через указание GUID класса (например: usbdevicestoredirect:s:*;{6bdd1fc6-810f-11d0-bec7-08002be2092f}).
    • Если же вы хотите использовать какие-то устройства только в своей клиентской ОС, но не в удалённом сеансе — добавьте их ID в качестве исключений (напримемр, usbdevicestoredirect:s:*;{6bdd1fc6-810f-11d0-bec7-08002be2092f};-USB\InstanceID).

Если вы затрудняетесь определить GUID, соответствующий какому-то классу, воспользуйтесь документацией, опубликованной на MSDN.

Возможно, что для некоторых устройств решение о предпочтительном методе перенаправления окажется не таким очевидным. Например, использовать для принетеров ThinPrint или RemoteFX? Или и то, и другое — для разных принтеров? Как в таком случае будет выбираться принтер по умолчанию? А USB-телефон? Откуда вы собираетесь управлять звонками — из ОС на своём компьютере или из виртуальной машины? Здесь не может быть универсального совета, поэтому мы с интересом выслушаем соображения о том, какие решения вы примете исходя из своих конкретных задач.

Итоговый результат должен выглядеть примерно так. Удалённая виртуальная машина воспринимает подключенное через RemoteFX устройство как локальное, причём видит не «обычное устройство», а конкретную модель со всеми её свойствами и возможностями.

На этом неделя RemoteFX объявляется завершённой, всем хороших выходных. И если у вас остались какие-то вопросы, на которые мы ещё не ответили в своих заметках — ждём их в комментариях.

Comments (19)

  1. Anonymous says:

    В RDP-сессии вирт. машины возможно использование web-камеры,

    а в RDP-сессии физ. машины – нет…

    Где логика?

  2. Alex A says:

    Безусловно.

    Если вам нужен USB для служб (например какие-либо HASP ключи), то это делается аппаратным средством, типа AnywhereUSB.

    Более того, RemoteFX работает лишь с Windows 7, вам же нужен наверняка сервер, раз такое спрашиваете.

    Прог AnywhereUSB я отдельно писал.

  3. Alex A says:

    Скоро будет продолжение по не менее интересной теме 🙂

  4. Касательно вопроса выше – это связано с позиционированием RemoteFX в предыдущем поколении, как технологии для VDI.

    RemoteFX в реализации WS2012 поддерживает перенаправление USB-устройств и в обычные терминальные сессии.

  5. Alex A says:

    Отличий не особо много. Нужен клиент с поддержкой RFX.

    Windows Embedded 7 SP1, например. Или Linux, или iPhone с iTap RDP.

  6. Andrew says:

    благодарю за цикл статей по RemoteFX

  7. vovets-666 says:

    Отличные статьи, спасибо.

    >Скоро будет продолжение по не менее интересной теме 🙂

    Уж не про перенаправление ли USB c хоста в виртуалку? :))

  8. Sergey N. says:

    "После того, как вы разрешели перенаправление устройств, в настройках клиента «Удалённого рабочего стола» появляется новая возможность"

    Ничего не появилось. Это может быть из-за того, что все текущие устройства обычные?

    Или должен буть пустой список?

  9. Павел says:

    А какие варианты подключения тонким клиентом по протоколу rdp 7.1?

  10. alex says:

    После перенаправления USB устройства оно появится при входе через RDP.

    Если я отключаюсь от RDP – устройство тоже отключается?

  11. Oleg says:

    Т.е. через RemoteFX в RDP-сессии подключенную к вирт. машине есть возможность использовать web-камеру

    А в RDP-сессии к физ. машине нет…

    где логика?

  12. artem says:

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

  13. konov says:

    Возникла задачка таким образом пробросить USB-DVD….

    Не удаётся. usbdevicestoredirect:s:*;{4d36e965-e325-11ce-bfc1-08002be10318} в rdp файл вставлял…

  14. Андрей says:

    На win xp x86 можно реализовать ?

  15. Алексей says:

    Добрый день.
    Интересует следующее: есть ли какое ограничение по количеству пробрасываемых USB устройств в ВМ под Hyper-V на RemoteFX?
    Где об этом можно почитать?

    Спасибо.

  16. Elite says:

    а как заставить установится роли removeFX БЕЗ роли гипервизора?!
    у меня терминальный сервер поднят на виртуальной машина на гипервизоре – но внутри ВМ он не дает уже поставить роль гипервизора!!
    вин 2008р2

  17. Вложенный гипервизор в Hyper-V до определённого поколения не поддерживается.

  18. К слову, в Windows Server 2016 вложенный гипервизор поддерживается посредством контейнеров.

Skip to main content