Reindirizzamento di periferiche e risorse tramite Remote Desktop Protocol

Il reindirizzamento consente agli utenti di condividere risorse e periferiche, ad esempio gli Appunti, le webcam, i dispositivi USB, le stampanti e altro ancora, tra il dispositivo locale (lato client) e una sessione remota (lato server) tramite Remote Desktop Protocol (RDP). Il reindirizzamento mira a offrire un’esperienza remota senza problemi, paragonabile all’esperienza che si avrebbe con il dispositivo locale. Questa esperienza consente agli utenti di essere più produttivi ed efficienti durante il lavoro remoto. Gli amministratori possono configurare il reindirizzamento per bilanciare i requisiti di sicurezza e le esigenze degli utenti.

Questo articolo fornisce informazioni dettagliate sui metodi di reindirizzamento tra classi periferiche diverse, classificazioni di reindirizzamento e i tipi di risorse e periferiche supportati che è possibile reindirizzare.

Metodi e classificazioni di reindirizzamento

RDP sfrutta due metodi per reindirizzare risorse e periferiche tra il dispositivo locale e una sessione remota:

  • Reindirizzamento di alto livello: funziona come intermediario intelligente intercettando e ottimizzando tutte le comunicazioni per una classe specifica di periferiche o esperienze. Il reindirizzamento di alto livello garantisce le migliori prestazioni possibili per gli scenari remoti, ma si basa anche sul supporto di driver e applicazioni periferici.

  • Reindirizzamento opaco di basso livello: trasporta la comunicazione non elaborata di una periferica senza alcun tentativo di interpretarla, comprenderla, limitarla o ottimizzarla per scenari remoti.

    Il reindirizzamento opaco di basso livello viene usato per le periferiche che si connettono tramite USB in cui non esiste una soluzione di reindirizzamento di riflessione di alto livello adatta alle periferiche e per il corretto funzionamento delle periferiche con requisiti specifici di driver o software nella sessione remota. Il reindirizzamento USB avviene a livello di porta e protocollo usando i blocchi di richiesta USB (URB). Il reindirizzamento opaco di basso livello viene usato anche per le periferiche che si connettono tramite porte seriali/COM.

All’interno del reindirizzamento di alto livello sono disponibili quattro tecniche principali usate, classificate in base alla direzione del reindirizzamento e al tipo di risorsa o periferica da reindirizzare. Le quattro classificazioni di reindirizzamento di alto livello sono:

  • Riflessione periferica: riflette una classe specifica di periferiche connesse al dispositivo locale in una sessione remota. Questa classificazione include dispositivi di input, ad esempio tastiera, mouse, tocco, penna e trackpad.

  • Condivisione dei dati: condivide e trasferisce i dati tra il dispositivo locale e una sessione remota per gli Appunti.

  • Stato di riflessione: riflette lo stato del dispositivo locale in una sessione remota, ad esempio lo stato della batteria e la posizione.

  • Separazione dell’applicazione: suddivide le funzionalità di un’applicazione nel dispositivo locale e in una sessione remota, ad esempio Microsoft Teams.

Il metodo di reindirizzamento usato può variare in base alla classe periferica, ad esempio Windows, macOS, iOS/iPadOS o Android e alle relative risorse, periferiche e funzionalità disponibili. Il reindirizzamento disponibile in una sessione remota dipende anche dall’applicazione usata. Per un confronto del supporto per il reindirizzamento tramite app di Windows tra piattaforme diverse, vedere Confrontare le funzionalità di app di Windows tra piattaforme e dispositivi.

Importante

È consigliabile usare il reindirizzamento di alto livello quando possibile, in quanto offre le prestazioni e l’esperienza utente migliori. Il reindirizzamento opaco di basso livello è in effetti uno scenario di fallback, quindi le prestazioni, l’affidabilità e il set di funzionalità supportato di tali periferiche non è garantito per impostazione predefinita.

Alcune periferiche non possono essere reindirizzate, ad esempio l’archiviazione USB crittografata.

Confronto tra reindirizzamento USB

La tabella seguente confronta il reindirizzamento di una periferica USB usando il reindirizzamento USB opaco di basso livello per reindirizzare la periferica usando un reindirizzamento di alto livello con una classe periferica supportata tramite RDP:

Reindirizzamento USB opaco di basso livello Reindirizzamento di alto livello
Richiede l’installazione del driver per la periferica USB nella sessione remota. Non richiede l’installazione del driver nel dispositivo locale. Richiede l’installazione del driver per la periferica nel dispositivo locale. Nella maggior parte dei casi, non richiede l’installazione del driver nella sessione remota.
Usa un singolo metodo di reindirizzamento per molte classi periferiche. Usa un metodo di reindirizzamento specifico per ogni classe periferica.
Inoltra i blocchi di richiesta USB da e verso la periferica USB tramite la connessione RDP. Espone funzionalità periferiche di alto livello in una sessione remota usando un protocollo ottimizzato per la classe periferica.
La periferica USB non può essere usata nel dispositivo locale mentre viene usata in una sessione remota. Può essere usata solo in una sessione remota alla volta. La periferica può essere usata simultaneamente nel dispositivo locale e in una sessione remota.
Ottimizzato per connessioni a bassa latenza. Variabile basata sull’implementazione del driver periferico. Ottimizzato per le connessioni LAN e WAN ed è consapevole delle modifiche apportate alle condizioni, ad esempio larghezza di banda e latenza.

Controllo del reindirizzamento USB opaco di basso livello

Il reindirizzamento di periferiche USB tramite reindirizzamento USB opaco di basso livello è controllato dalla proprietà RDP usbdevicestoredirect:s:<value>, dove <valore> è il percorso dell’istanza del dispositivo nel formato USB\<Vendor ID and Product ID>\<USB instance ID>.

Per alcuni prodotti e servizi, ad esempio Desktop virtuale Azure, è possibile controllare il comportamento del reindirizzamento impostando il valore della proprietà RDP come indicato di seguito:

  • Alcune periferiche USB potrebbero avere funzioni che usano il reindirizzamento USB opaco di basso livello o il reindirizzamento di alto livello. Per impostazione predefinita, queste periferiche vengono reindirizzate usando il reindirizzamento di alto livello. È possibile usare la proprietà RDP per forzare queste periferiche a usare il reindirizzamento USB opaco di basso livello. Per usare periferiche audio USB con il reindirizzamento USB opaco di basso livello, la posizione dell’output audio deve essere impostata per riprodurre suoni nel computer locale.

  • Usare GUID di classe per reindirizzare o non reindirizzare un’intera classe di periferiche USB.

  • Usare il carattere jolly * perché il valore reindirizzerà la maggior parte delle periferiche in cui non sono installati meccanismi di reindirizzamento o driver di alto livello. I GUID di classe possono essere usati per reindirizzare periferiche aggiuntive che non hanno una corrispondenza automatica.

I valori possono essere usati autonomamente oppure possono essere combinati gli uni insieme agli altri se separati con un punto e virgola, soggetti a un ordine di elaborazione. La tabella seguente elenca i valori validi e l’ordine di elaborazione:

Ordine di elaborazione valore Descrizione
N/D Nessun valore specificato Non reindirizzare le periferiche USB supportate usando il reindirizzamento opaco di basso livello.
1 * Reindirizzare tutte le periferiche che non usano il reindirizzamento di alto livello.
2 {<DeviceClassGUID>} Reindirizzare tutte le periferiche che fanno parte della classe di installazione dei dispositivi specificata.
3 <USBInstanceID> Reindirizzare una periferica USB specificata dal percorso dell’istanza del dispositivo specificato.
4 <-USBInstanceID> Non reindirizzare una periferica specificata dal percorso dell’istanza del dispositivo specificato.

Se creata come stringa nell’ordine di elaborazione corretto, la sintassi è:

usbdevicestoredirect:s:*;{<DeviceClassGUID>};<USBInstanceID>;<-USBInstanceID>

Il percorso dell’istanza del dispositivo per i dispositivi USB viene creato in tre sezioni nel formato USB\<Device ID>\<USB instance ID>. È possibile trovare questo valore in Gestione dispositivi oppure usando il cmdlet di PowerShell Get-PnpDevice. Le tre sezioni in ordine sono:

  1. Nome del driver bus, in questo caso USB.
  2. ID dispositivo, che contiene l’ID fornitore (VID) e l’ID prodotto (PID) della periferica USB.
  3. ID istanza, che distingue in modo univoco un dispositivo da altri dispositivi dello stesso tipo in un computer.

Quando si specificano periferiche USB da reindirizzare su RDP, è possibile usare il percorso dell’istanza del dispositivo. Quando si usa il percorso dell’istanza del dispositivo, il valore è specifico della porta nel dispositivo locale a cui è connesso. Ad esempio, una periferica connessa alla prima porta USB ha il percorso dell’istanza del dispositivo USB\VID_045E&PID_0779\5&21F6DCD1&0&5, ma la connessione della stessa periferica alla seconda porta USB presenta il percorso dell’istanza del dispositivo USB\VID_045E&PID_0779\5&21F6DCD1&0&6. Per le periferiche USB, specificare il percorso dell’istanza del dispositivo implica che la periferica viene reindirizzata solo quando è connessa alla stessa porta.

In alternativa, è possibile reindirizzare un’intera classe di configurazione dei dispositivi delle periferiche USB usando il GUID della classe. Quando si usa il GUID della classe, tutte le periferiche nel dispositivo locale con il GUID della classe corrispondente vengono reindirizzate, indipendentemente dalla porta a cui sono connesse. Ad esempio, l’uso del GUID della classe {4d36e96c-e325-11ce-bfc1-08002be10318} reindirizza tutti i dispositivi multimediali. Un elenco di tutti i GUID della classe è disponibile in classi di installazione dei dispositivi definite dal sistema disponibili per i fornitori.

Per alcuni esempi di come usare la proprietà RDP, vedere proprietà RDP usbdevicestoredirect.

Risorse e periferiche supportate

La tabella seguente elenca ogni classe di risorsa o periferica supportata e il metodo di reindirizzamento consigliato da usare per ognuna di esse:

Classe di risorsa o periferica Metodo di reindirizzamento Direzione del flusso di dati predominante
Stampante/Scanner all-in-one Reindirizzamento opaco di basso livello Bidirezionale
Input audio: microfono (USB o integrato) Alto livello - Riflessione periferica Da locale a remoto
Output audio: altoparlante (USB o integrato) Alto livello - Riflessione periferica Da remoto a locale
Batteria (automatica, non configurabile) Alto livello - Riflessione dello stato Da locale a remoto
Lettore biometrico (solo all’interno di una sessione, non durante l’accesso) Reindirizzamento opaco di basso livello Bidirezionale
Fotocamera/Webcam (USB o integrata) Alto livello - Riflessione periferica Da locale a remoto
Unità CD/DVD (sola lettura) Alto livello - Riflessione periferica Da locale a remoto
Appunti Alto livello - Condivisione dei dati Bidirezionale
Tastiera (USB o integrata) Alto livello - Riflessione periferica Da locale a remoto
Disco rigido locale o spazio di archiviazione rimovibile USB Alto livello - Riflessione periferica Bidirezionale
Ufficio Alto livello - Riflessione dello stato Da locale a remoto
Mouse (USB o integrato) Alto livello - Riflessione periferica Da locale a remoto
Lettore multimediale con Media Transfer Protocol (MTP) Alto livello - Riflessione periferica Da locale a remoto
Reindirizzamento multimediale Alto livello - Separazione dell’applicazione Bidirezionale
Penna (USB o integrata) Alto livello - Riflessione periferica Da locale a remoto
Stampante (collegata localmente o di rete) Alto livello - Riflessione periferica Da remoto a locale
Fotocamera con Picture Transfer Protocol (PTP) Alto livello - Riflessione periferica Da locale a remoto
Scanner Reindirizzamento opaco di basso livello Bidirezionale
Porta seriale/COM Reindirizzamento opaco di basso livello Bidirezionale
Lettore di smart card Alto livello - Riflessione periferica Bidirezionale
Tocco (USB o integrato) Alto livello - Riflessione periferica Da locale a remoto
Trackpad (USB o integrato, esclusi i movimenti di precisione del touch pad (PTP)) Alto livello - Riflessione periferica Da locale a remoto
Da USB ad adattatore seriale Reindirizzamento opaco di basso livello Bidirezionale
Telefono/Cuffie VoIP Reindirizzamento opaco di basso livello Bidirezionale
WebAuthN Alto livello - Riflessione periferica Bidirezionale

Nota

  • Le classi periferiche seguenti sono bloccate dal reindirizzamento:

    • Schede di rete USB.
    • Schermi USB.
  • Il reindirizzamento dello scanner non include il supporto TWAIN.

  • Il reindirizzamento della batteria è disponibile solo per Desktop virtuale Azure e Windows 365. È disponibile automaticamente e non è configurabile.

  • Il reindirizzamento dello stack del driver Bluetooth non è supportato. Se una periferica è connessa al dispositivo locale, ad esempio una tastiera Bluetooth, viene reindirizzata alla sessione remota in base alla classe periferica supportata.

Il diagramma seguente illustra i metodi di reindirizzamento usati per ogni classe periferica:

Diagramma che mostra il mapping delle diverse classi periferiche ai metodi di reindirizzamento opachi di basso livello e di alto livello.

Ordine di priorità di configurazione

Quali classi di dispositivi sono abilitate per il reindirizzamento e il comportamento dei reindirizzamenti sono configurati da un amministratore di una sessione remota. Il comportamento può essere configurato da Microsoft Intune o da Criteri di gruppo (Active Directory o locale) a lato server oppure specificato in un file .rdp usato per connettersi a una sessione remota. Desktop virtuale Azure e Servizi Desktop remoto dispongono anche un servizio broker in cui è possibile specificare invece le proprietà RDP.

Tuttavia, alcune impostazioni possono essere sostituite nel dispositivo locale in cui è necessaria una configurazione più restrittiva. Un’impostazione più restrittiva ha la precedenza ovunque sia configurata: ad esempio, se un amministratore configura gli Appunti per essere reindirizzati per tutte le sessioni remote per impostazione predefinita, ma il dispositivo locale è configurato per disabilitare il reindirizzamento degli Appunti, gli Appunti non saranno disponibili nella sessione remota. Questo offre flessibilità negli scenari in cui un sottoinsieme di utenti o dispositivi richiede impostazioni più restrittive rispetto alla configurazione predefinita.