Ajouter un commentaire

Comment rediriger un périphérique USB via RemoteFX ?

Hyper-V : RemoteFX et redirections USB dans les sessions RDP / VDI

I : Introduction

Windows nous permet à ce jour de disposer d’environnements de travail à distance, autant sur les versions Desktop que les versions Server. Couplons à cela la technologie Hyper-V (disponible dans les 2 versions) qui permet de déployer des machines virtuelles (VM) et nous obtenons des plateformes versatiles, pour autant que le matériel le permette.
Mais on se retrouve parfois limités dans l’usage, par exemple quand nous souhaitons dans une Virtual Machine (VM), utiliser une Webcam, un casque, ou un périphérique USB de 2FA (double facteur d’authentification). Dans un environnement VDI (Virtual Desktop Infrastructure) ou de bureau à distance c’est encore plus flagrant, l’environnement de travail d’un technicien reposant entièrement sur sa VM (une problématique connue chez Ikoula)
C’est là qu’entre en jeu la technologie virtuelle RemoteFX fournie par Hyper-V !

II : Prérequis

La technologie RemoteFX peut être mise en place sur les versions suivantes :
  • Windows Server 2008 R2 SP1
  • Windows Server 2012 et 2012 R2
  • Windows Server 2016
  • Windows 10 Entreprise


Il nous faut :
  • Un OS Microsoft (Desktop ou Server) avec rôle Hyper-V installé
  • Une carte graphique compatible DirectX(9.0c pour 2008 / 11 pour 2012 - 2016 - 10 Entreprise)
  • Un CPU supportant le SLAT (Second Level Address Translation ou Nested Paging)
  • L'hôte de virtualisation ne peut être Domain Controller

Ce sont les prérequis "génériques"

III : Cas pratique

Nous allons mettre en place le RemoteFX dans une infrastructure VDI, afin que nos utilisateurs puissent utiliser leurs périphériques USB de 2FA dans leurs environnements de travail virtualisés.
Nous allons procéder à la création complète de l’infrastructure.
Nous avons à l’heure actuelle des postes physiques (postes client) et un Active Directory prêt à l’emploi. Le serveur propre au VDI est prêt, et en attente de configuration.

STEP 1 :
Nous allons préparer l’Active Directory (AD) : Nous ajoutons un Organizational Unit (OU) dédié au VDI, et ajoutons les utilisateurs qui se connecteront au VDI.

STEP 2 :
Nous préparons le serveur qui accueillera l’infrastructure VDI : après l’installation de Windows Server 2012 R2 et ses mises à jour, nous installons et vérifions la carte graphique (dans notre cas, nous options pour une NVDIA QUADRO 2000D). Nous mettons en place ensuite la configuration réseau et machine, nous l’intégrons dans notre AD.

STEP 3 :
Nous mettons en place le VDI : nous installons les Services Remote Desktop (Remote Desktop Services Installation) avec les options suivantes:
  • Standard Deployment>
  • Virtual Machine-based desktop deployment
  • Les 3 rôles clés : "Connection Broker"(le gestionnaire de connexion), "Web Access"(la page de connexion) et "Virtualization Host"(l'hôte de virtualisation des VM). Ils seront installés sur la même machine dans notre cas, mais il est tout à fait possible de spécifier des serveurs différents pour chacun des rôles.
Les rôles s'installent, le serveur redémarre.

STEP 4 :
Démarrer le gestionnaire Hyper-V. Dans les paramètres, il faut activer la carte graphique et l’utiliser avec RemoteFX. Paramétrer aussi la partie réseau.
Ensuite créer une VM de template : ce modèle servira à créer toutes les VM de notre VDI, auxquelles les utilisateurs se connecteront. Nous optons pour une configuration, et ajoutons le périphérique virtuel RemoteFX. Nous installons l’OS (ici Windows 10 Entreprise) et l’activons, installons les logiciels. Nous modifions cette règle dans la stratégie de groupe local :
Computer Configuration -> Administratives Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection
« do not allow supported Plug and Play device redirection » -> DISABLED
Après vérifications, nous procédons au SYSPREP de la VM pour la nettoyer.

STEP 5 :
Nous créons la « collection » de VM dans notre VDI, soit l’ensemble des VM qui composeront son pool et seront accessibles pour nos utilisateurs.
Nous donnons à la collection un nom facilement identifiable, en définissons le type « pooled virtual desktop collection » et utilisons comme template la VM précédemment créée.
Nous utilisons l’OU créée pour l’occasion, spécifions une nomenclature pour nos VM, ainsi qu’un nombre de VM à créer (autant de VM que de collaborateurs, avec une réserve de 2 machines de spare, pour palier à un éventuel problème)

Nous devons enfin spécifier l’emplacement des fichiers des VM. Nous en profitions pour activer l’option « enable user profile disks », qui permet de créer des disques séparés pour les fichiers utilisateurs. Nous lui affections un emplacement différent, afin de faciliter le stockage et la gestion.
Nous validons et laissons le processus de création se faire. Notre pool de VM pour le VDI est prêt.

STEP 6 :
Toute la partie relative aux VM est finie. Notre hôte supporte le RemoteFX, les VM sont capables de « recevoir » les périphériques. Il ne nous reste plus qu’à paramétrer nos postes clients pour qu’ils puissent rediriger les périphériques physiques vers les VM. 2 éléments :
  • Modifier un paramètre dans la stratégie du groupe local:
Computer Configuration -> Administratives Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Connection Client -> RemoteFX USB Device Redirection
Allow RDP Redirection of other supported RemoteFX USB devices from this computer -> Enabled avec option « Administrators and Users »
  • - Ajouter une clé Registre spécifique : cette étape est cruciale pour que notre périphérique de 2FA soit reconnu. Sa classe de base n’est pas censée être accessible, il faut donc l’ajouter en base pour que notre client RDP la prenne en compte.

Nous allons donc procéder comme ceci :
  1. Récupérer dans le gestionnaire de périphériques le GUID de classe du périphérique
  2. Créer la clé registre dans : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client\UsbSelectDeviceByInterfaces

Comme ceci : Type : Valeur chaîne (string)
Nom : nom du périphirique par exemple
Valeur : La GUID de classe du périphérique en question

Une fois ces éléments réalisés, nous procédons dans un shell à un « gpupdate /force » puis à un reboot de la machine pour valider les changements.
Tout est terminé !

IV : Application

Nos utilisateurs vont connecter leurs périphériques USB de 2FA sur leur machine.
Ils vont se rendre sur la page web du connecteur du VDI :
https://IP_OU_NOM_DE_MACHINE/rdweb

De là, avec leurs identifiants ils peuvent récupérer le fichier .RDP leur permettant de se connecter au VDI.
Ils prendront le soin de paramétrer la vitesse de connexion dans l’onglet « Expérience » en LAN (obligatoire pour que le RemoteFX soit activé côté client).

RemoteFX - Bureau à distance - Ikoula


Dans l’onglet « ressources locales » le bouton « autres » donne accès aux périphériques redirigés.
Il suffira d’activer dans la catégorie « Autres Périphériques USB RemoteFX pris en charge » le périphérique voulu (notre clé de 2FA)

RemoteFX - Virtual Desktop Infrastructure - Ikoula


À la connexion, le périphérique sera redirigé, la VM procédera à son installation, et il sera accessible dans la VM. A ce moment, celui-ci sera inaccessible dans la machine client.

Bandeau de connexion RDP sur le poste Client (avec l’icône indiquant la redirection)

RemoteFX - Machine virtuelle - Ikoula


Le périphérique présent dans la VM

RemoteFX - Virtual Machine - Ikoula


Et son état dans la machine client :

RemoteFX - Machine virtuelle, Bureau à distance - Ikoula


Il suffira de l’utiliser avec les services nécessaires, comme par exemple Gmail ou tout autre provider de solution.

V : Conclusion

Voilà comment nous pouvons permettre à des périphériques physiques spécifiques en USB d’être accessibles et exploitables dans un environnement virtualisé, sans faire appel à des drivers ou logiciels tiers.
Dans le cas d’un Virtual Desktop Infrastructure (VDI), utilisé comme plateforme et environnement de travail pour des collaborateurs, cela permet de gagner du temps, et d’agrémenter cet environnement sans avoir à faire de bascule machine physique/machine virtuelle à tout bout de champs.
Il faut noter que cette technique est valable pour des casques audio, des webcams etc…
Le RemoteFX est dépendant d’un système de Licensing (non abordé dans cet article). Sans licence, les services Remote Desktop ne sont disponibles que 120 jours. Il vous faut acquérir et activer cette licence pour pouvoir l’utiliser pleinement.
Sur Windows 10 Entreprise en tant qu’hôte Hyper-V, il est possible d’utiliser le RemoteFX sans les services RD (bien évidemment, cela ne permet pas de créer un environnement VDI comme nous l’avons décrit).