Uno dei problemi più sentiti durante la migrazione a Windows 7 partendo da Windows XP è la compatibilità delle applicazioni, in quanto alcune applicazioni scritte per Windows XP non funzionano con Windows 7 oppure ci sono siti web intranet che possono essere navigati solo con Internet Explorer 6.

Un modo per risolvere il problema è di utilizzare Windows XP Mode, una funzionalità disponibile in Windows 7 che permette di installare una macchina virtuale con Windows XP direttamente sulla workstation dell'utente e far girare le applicazioni obsolete all'interno della macchina virtuale. L'integrazione con il menù avvio della workstation permette all'utente di poter avere un'esperienza d'uso facilitata poiché le applicazioni virtuali possono essere lanciate dallo stesso menù da cui sono lanciate le altre applicazioni, come mostrato in figura 1, e il risultato finale è quello di vedere solo la finestra dell'applicazione e non l'intero desktop della macchina virtuale.

Figura 1: Integrazione delle applicazioni XP Mode con il menù avvio di Windows 7

Distribuire, ma soprattutto gestire, Windows XP Mode in una grande azienda non è sicuramente semplice. Per questo motivo Microsoft mette a disposizione delle aziende che hanno un contratto di Software Assurance il programma Med-V(Microsoft Enterprise Desktop Virtualization), contenuto nel pacchetto MDOP. Tramite Med-V 2.0 possiamo creare dei packages con all'interno la macchina virtuale con Windows XP SP3 e tutta una serie di configurazioni del Workspace che verrà utilizzato dall'utente.

Figura 2: Console per la creazione di un Workspace package in Med-V 2.0

Entrambe le opzioni viste però prevedono che la macchina virtuale che contiene Windows XP giri sulla postazione dell'utente e che quindi questa postazione abbia una potenza di calcolo adeguata e abbastanza RAM per far girare due sistemi operativi.

L'alternativa a queste soluzioni è permettere l'accesso da Windows 7 ad una applicazione legacy (ad es. Internet Explorer 6 oppure Access 97/2000) installata in una macchina remota con Windows XP SP3 e che viene presentata all'utente sotto forma di RemoteApp, che magari possa girare syde-by-syde con un'applicazione installata sulla macchina locale.

La macchina remota potrebbe anche essere una macchina virtuale che sta girando all'interno del nostro Datacenter in Hyper-V. Questo tipo di soluzione permette quindi ad ogni utente di avere il proprio Personal Virtual Desktop.
La macchina virtuale potrebbe anche essere una copia della stessa macchina fisica che l'utente stava utilizzando prima di passare a Windows 7, virtualizzata con una conversione Physical-to-Virtual (P2V).

Come abilitare le RemoteApp su XP

Dopo aver installato Windows XP SP3 o dopo aver convertito una macchina esistente, per prima cosa abilitiamo la funzionalità di desktop remoto e decidiamo a quali utenti è consentita la connessione remota, come mostrato in figura 3. Potremmo utilizzare un gruppo di Active Directory se la macchina XP è condivisa, oppure potremmo scegliere un unico utente se la vogliamo usare come Personal Virtual Desktop.

Figura 3: Abilitazione della funzionalità di Desktop remoto e scelta del gruppo di utenti autorizzati

Per abilitare la funzionalità di RemoteApp in Windows XP SP3 è sufficiente installare l' Aggiornamento per Windows® XP SP3 per abilitare RemoteApp™ e riavviare.

Dopo il riavvio della macchina bisogna modificare nella chiave di registro HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList il valore fDisabledAllowList mettendolo a 1.

Modificando la chiave di registro infatti permettiamo che le applicazioni installate nella macchina con Windows XP possano essere lanciate come RemoteApp, come mostrato in figura 4.

Figura 4: Abilitazione della chiave di registro per le RemoteApp

A questo punto è necessario creare una chiave di registro specifica per ogni applicazione che vogliamo autorizzare. Nel nostro caso per lanciare Internet Explorer 6 dovremo creare all'interno del valore HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList\Applications le chiavi mostrate in figura 5. Se la chiave Applications non esiste va creata.

Figura 5: Creazione delle chiavi di registro per autorizzare le singole applicazioni

Il passaggio successivo consiste nel creare un file .rdp opportunamente modificato per poter lanciare la RemoteApp.

Creiamo ad esempio una connessione RemoteApp per utilizzare via RDP Internet Explorer 6 installato in Windows XP SP3. Lanciamo dalla macchina con Windows 7 il client Connessione Desktop remoto (mstsc.exe) e digitiamo il nome del computer da raggiungere (nel mio caso xp.demo.lab). Salviamo il file RDP con il comando Salva con come in un posto comodo, scegliendo come nome quello dell'applicazione da lanciare (nel mio caso Internet Explorer 6.rdp) .

Figura 6: Creazione del file RDP per la connessione al computer remoto

Apriamo con il Blocco Note il file Internet Explorer 6.rdp appena creato e apportiamo le seguenti modifiche al file, come mostrato in figura 7:

  • remoteapplicationmode:i:1
  • alternate shell:s:rdpinit.exe
  • remoteapplicationprogram:s:||IE6
  • remoteapplicationname:s:Internet Explorer 6
  • disableremoteappcapscheck:i:1
  • prompt for credentials on client:i:1

Per chi vuole accedere all'applicazione dall'esterno dell'azienda può usare un Remote Desktop Gateway (nel mio caso rdgw.demo.lab) . In questo caso è necessario modificare nel file RDP appena creato i seguenti parametri, evidenziati anche loro nella figura che segue:

  • gatewayhostname:s:rdgw.demo.lab
  • gatewayusagemethod:i:1
  • gatewaycredentialssource:i:4
  • gatewayprofileusagemethod:i:1
  • promptcredentialonce:i:0 (mettere a 1 se volete usare le stesse credenziali per accedere alla macchine XP e Gateway)

Figura 7: Modifiche da apportare al file RDP per connettersi ad Internet Explorer 6 come RemoteApp

A questo punto possiamo salvare le modifiche e lanciare il file RDP per verificarne il funzionamento.

 

Figura 8: lancio della RemoteApp per la verifica di funzionamento

Dopo l'inserimento delle credenziali di autenticazione all'interno della finestra Dettagli, possiamo finalmente accedere alla nostra applicazione legacy, come mostrato in figura 9. Le volte successive che lanceremo l'applicazione o altre applicazioni che girano sulla stessa macchina remota non sarà necessario reinserire le credenziali, per tutta la durata della sessione di lavoro sulla macchina Windows 7. Purtroppo in Windows XP non è possibile usare il single sign-on per l'autenticazione, che invece è disponibile se usiamo come sistema operativo virtuale Windows Vista o Windows 7.

La sessione sulla macchina XP remota rimarrà aperta anche in caso di disconnessione dal computer client, quindi per chi ne avesse necessità può modificare la durata del Timeout della sessione disconnessa utilizzando le Group Policy locali e modificando il valore di Computer Configuration --> Administrative Templates --> Windows Components --> Remote Desktop Session Host --> Session Time Limits --> 'Set time limit for disconnected sessions'.

Figura 9: Lancio di Internet Explorer 6 come RemoteApp in Windows 7

 

Questo tipo di utilizzo delle RemoteApp può essere implementato sia se Windows XP SP3 gira su macchina fisica sia se gira su macchina virtuale, indipendentemente dalla piattaforma di virtualizzazione, che sia essa Microsoft o di altri vendor.

La distribuzione del file RDP può essere effettuata attraverso la nuova funzionalità di RemoteApp and Desktop Connection che si serve del Remote Desktop Web Access di Windows Server 2008 R2. In questo modo i collegamenti alle applicazioni legacy appariranno nel menù avvio dell'utente. Per pubblicare i vostri file personalizzati potete scrivere un plugin seguendo le linee guida dell'articolo RemoteApp and Desktop Connection Management Extensibility for provisioning apps via RD Web Access

 

Approfondimenti

RemoteApp for Hyper-V

RemoteApp for Hyper-V (VDI) Deployment