Citrix ha rilasciato numerosissime versioni di Client ICA e trovandosi a fare degli upgrade spesso si finisce per avere dei PC con più versioni di Client ICA installato (per esempio il Web ICA Client di una versione ed il client PN di un’altra). Alla fine è sempre un panico capire quale versione viene usata in una condizione o in un’altra.
Per una corretta disinstallazione è necessario capire quale versione di ICA Client dobbiamo rimuovere.
Esistono le seguenti possibilità:
- ActiveX (solitamente versioni 4.x)
- ICA Client installati tramite file .exe
- ICA Client distribuiti tramite .cab dalla Web Interface
- ICA Client installati tramite MSI
ActiveX
La versione ActiveX è piuttosto vecchia, ma cercando sulla Knowledgebase Citrix ho trovato questo interessante documento che propone una disinstallazione tramite uno script Visual Basic. Vi rimando pertanto al documento CTX372760
File EXE
Questi sono il tipo di installazione più rognosa in quanto è per la disinstallazione è necessario l’intervento dell’utente per premere un Dialog Box nel quale si chiede la conferma di disinstallazione. Non c’è modo di saltare questa richiesta. Per rimuovere questo client il sistema più comune proposto è quello di utilizzare un tool come AutoIT che permette di intercettare il Dialog Box e simulare la conferma manuale dell’utente. Creato lo script si può usare un comando di questo tipo:
IF EXIST %SYSTEMROOT%\system32\ctxsetup.exe Script.exe
dove Script.exe è appunto lo script generato con AutoIT. Un’alternativa interessante è stata proposta sul forum Citrix in questo articolo dove è presente uno script vbs che va minuziosamente a cancellare tutti i file e le chiavi del registry e sostanzialmente disinstalla a mano il Client ICA. Questo script è stato pensato per rimuovere il Web Client versioni 7.1, 8.0 e 8.1. Per comodità vi allego qui di seguito lo script in formato testo.
File CAB
L’ICA Client installato tramite file cab dalla Web Interface è piuttosto comune e può essere facilmente disinstallato tramite la seguente riga di comando:
IF EXIST %SYSTEMROOT%\INF\wficat.inf RunDll32 ADVPACK.DLL,LaunchINFSection %SYSTEMROOT%\INF\wficat.inf,DefaultUninstall
Faccio notare l’utilizzo della variabile %SYSTEMROOT% che cambia a seconda del sistema operativo. Sfortunatamente questo sistema funziona solo dalla versione 7 in avanti… Per le versioni precedenti è necessario procedere con un sistema analogo ai file di tipo .exe.
Pacchetto MSI
Le installazioni effettuate tramite MSI sembrano le più semplici da rimuovere. La sintassi è di questo tipo
MsiExec.exe /X{DF1D5FEC-D67C-43C8-9230-41F5DF350196} /QUIET
Il problema più grande è che diverse versioni di Client ICA corrispondono a diversi ID. Per esempio:
- {2C42EDE1E-6315-4E63-89E6-057EA114EBB8} per MetaFrame Presentation Server Client (8.00.24737)
- {C49067A8-8212-4A82-A4D9-1519701644F0} per Citrix Presentation Server Client – Web Only (10.100.55836)
- {42ACCB45-3363-47E0-94E9-F0074CC8BC56} per Citrix Presentation Server Client (10.150.58643)
Gli ID del Client ICA possono essere trovati controllando i programmi installati nella chiave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Per tutte le modalità di disinstallazione bisogna tenere presente che i file di configurazione memorizzati nella cartella %userprofile%\Application Data\ICAClient di ogni profilo utente presente sulla macchina non vengono cancellati. In questo caso è necessario utilizzare un semplice script come quello fornitomi dal bravissimo Ciano (che ringrazio):
for /D %%a in ("%SystemDrive%\Documents and Settings\*") do rmdir /S /Q "%%a\Dati applicazioni\ICAClient" rmdir /S /Q %Programfiles%\citrix\
Qua ci stavamo rompendo la testa per rimuovere il client ICA (nella varie versioni distribuite da max).
Mi ricordavo di avere letto un articolo qua che stava sul pezzo.
ciao