Una delle necessità di base se amministri o eroghi supporto IT è quella di interagire con l’utente: che sia troubleshooting o assistenza, puntualmente il nostro interlocutore sembra non sapere cosa sta facendo o le sue capacità di analisi e descrizione del problema sono pari a quelle dell’utente medio di un tablet Clementoni.
L’unico modo per salvare noi e il nostro sistema nervoso dall’utente sarà quindi vedere con i nostri occhi cosa sta succedendo sul suo Desktop con un software di Desktop Remoto tipo AnyDesk, Teamviewer e simili, pagando la relativa licenza se dovuta, oppure…
…oppure vediamo come fare tutto ciò utilizzando uno strumento che mamma Microsoft ci fornisce nativamente, anche se non molto pubblicizzato (sarà perchè è gratis?): Shadow Session
Si tratta in pratica di una sessione rdp che funziona in maniera molto simile ad Assistenza Remota di Windows, solo che non ha bisogno di una connessione internet e, soprattutto, l’utente dovrà semplicemente “accettare” la connessione con un click senza perdersi in ulteriori passaggi.
Come abilitare RDP Shadowing
Vediamo come fare in un ambiente di Dominio Active Directory, creiamo quindi una GPO e tramite Group Policy Management Editor andiamo in Computer Configuration / Administrative Templates / Windows components / Remote Desktop Services / Remote Session Host / Connections
Se non è già attivo abilitiamo il Desktop Remoto
e assicuriamoci di approfondire i parametri di sicurezza e le loro implicazioni (RTFM ci sta tutto), se siete pigri abilitate tutto e incrociate le dita
A questo punto verifichiamo le impostazioni in Set rules for remote control of Remote Desktop Services user sessions.
Di default tutti gli utenti appartenenti al gruppo Administrators sull’host remoto sono abilitati ad effettuare lo shadowing previo consenso dell’utente, personalmente mi sembra anche la scelta più indicata ma ovviamente adattatela al vostro contesto.
Consentire RDP Shadowing sul Firewall
Purtroppo la famigerata porta RDP 3389 è assolutamente inutile in questo caso, infatti le sessioni shadow utilizzano la porta 445/TCP ed altre Ephemeral ports assolutamente dinamiche nel range 49152-65535/TCP, pertanto l’unica soluzione è consentirle in blocco sul Firewall. Nel caso del Firewall nativo di Windows possiamo abilitare due regole predefinite
- File and Printer Sharing (SMB-In), in Italiano Condivisione File e Stampanti (SMB-In)
- Remote Desktop - Shadow (TCP-In), Desktop remoto - Shadow (TCP-In)
L’ultima consente esclusivamente l’ascolto al processo RdpSa.exe
Connessione remota alla sessione utente con RDP Shadowing
Per avviare la connessione usiamo il client di Windows Remote Desktop ufficiale, sfortunatamente ad oggi non esiste l’opzione shadow nella GUI quindi toccherà avviarlo da linea di comando
|
|
Queste è la sintassi di base ma possiamo anche specificare le opzioni di seguito
- /prompt - Vi verrà chiesto di specificare utente e password con cui connettervi anzichè usare il vostro utente corrente
- /control - Avrete il pieno controllo di mouse e tastiera remoti, senza passare questa opzione avrete accesso in sola visione alla sessione remota
- /noConsentPrompt - Non verrà chiesto il consenso all’utente remoto per l’accesso alla sua sessione
Ci servirà infine il Session ID della sessione remota che possiamo ottenere sempre da linea di comando con
|
|
Ed ecco l’output dove vediamo che la sessione “Active” del nostro amato utente ha ID 1
Possiamo quindi procedere alla connessione
L’utente riceverà la richiesta, con l’autorizzazione che richiediamo (visualizzare o controllare), che dovrà accettare
E finalmente potremo vedere ed interagire con la sessione utente
Facile no? Il qwinsta in molti casi ce lo potremmo risparmiare, tendenzialmente l’ID sessione, se non è un server, sarà quasi sempre 1 ma…visto che vogliamo essere pronti a tutto e non vogliamo romperci le p perdere tempo ecco un malefico .bat che ci renderà la vita migliore
|
|
Sì lo so, prima o poi lo convertirò in PowerShell ma un .bat per quanto malefico ha un indubbio vantaggio: è a portata di doppio click anche per il più basico degli utenti… sai mai che lo debba usare un babbano(cit.) dell’IT come vediamo di seguito.
RDP Shadowing senza diritti amministrativi
Di default solo gli amministratori possono creare sessioni shadow ma potrebbe darsi che questa funzionalità possa essere fondamentale anche per utenti non privilegiati, ad esempio utenti di supporto applicativo, e ovviamente non vogliamo dargli diritti amministrativi no? …NO!!!
Creiamo quindi un Security Group sul nostro dominio Active Directory e lo popoliamo con gli utenti standard che forniranno supporto
Poi diamo i permessi a questo gruppo via shell, come shell?! Già, nessuna GPO ci può aiutare e nemmeno una voce di registro, quello che dovremo fare sarà quindi lanciare questo PowerShell sul computer che riceverà la connessione
|
|
E se me ne pento? Per resettare i permessi standard ecco la funzione inversa
|
|
Considerazioni
Quanto visto si rivela molto utile in reti di dominio dove abbiamo la possibilità di accedere direttamente alle macchine via LAN/VPN/MPLS, e/o dove queste non hanno accesso a internet per usare software tipo Anydesk, Teamviewer ecc.
Condizione necessaria è ovviamente l’adeguato setting del Firewall software in esecuzione sui client, meglio se abilitato solo per le reti di Profilo Dominio.
Non male per essere free no? Voi a cosa vi affidate per il supporto remoto?
Sentitevi liberi di condividere le vostre esperienze nei commenti, a presto.