[Livello: Esperto]

Quando una rimozione di un programma non va a buon fine e rimangono tracce di alcuni componenti non propriamente rimossi, possono verificarsi problemi durante l'installazione di versioni successive del programma o di altri programmi.
La procedura seguente rimuove ogni traccia dell'installazione di un programma dal disco.
(Se sono presenti chiavi di configurazione nel registro di sistema, queste devono essere rimosse manualmente o usando tools di gestione del registro.)

Scaricare msiinv:
http://www.huydao.net/setup/msiinv.zip

Unzippare, aprire un command prompt nella directory ed eseguire:
msiinv.exe > output.txt

A seconda del numero dei programmi installati, l'esecuzione potrebbe durare diversi minuti.

Nel file output.txt avremo la descrizione dettagliata di tutti i programmi installati.
Un esempio:

Microsoft .NET Framework 2.0 Beta 2
    Product code: {7A1ADD0C-17F3-47B8-B033-A06E189C835D}
    Product state: (5) Installed.
    Package code: {856D48D2-6F94-466D-9732-534DB5854FB3}
    Version: 2.0.50215
    ... altre info non rilevanti ...

Quello che ci interessa e' il "Product Code", evidenziato in rosso, del componente che vogliamo rimuovere.
Come primo tentativo, rimanendo sempre nel command prompt aperto in precedenza, eseguire:
msiexec /x <product code>

Includendo in <product code> anche le parentesi graffe.
Ora si possono avere due tipi di errori da msiexec:

  1. Se msiexec ritorna un errore che non puo' essere eseguito per programmi non installati, vuol dire che il nostro componente e' stato rimosso ma la registrazione dell'installazione e' ancora presente. In questo caso scaricare la Windows Installer Cleanup Utility:
    http://support.microsoft.com/default.aspx?scid=kb;en-us;290301
    eseguire, cercare il programma con il product code in questione e rimuoverlo.
  2. Per tutti gli altri errori, passare allo step successivo.

Scaricare SmartMSIZap:
http://astebner.sts.winisp.net/Tools/smartmsizap.zip

scompattare il file, aprire un command prompt nella directory ed eseguire:
smartmsizap /p <product code>

Ora tutte le tracce del componente incriminato dovrebbero essere rimosse.

Questa procedura si e' rivelata corretta per i miei usi, ma potrebbe non esserla per altri casi particolari.

Per maggiori informazioni consultare:
http://blogs.msdn.com/astebner/archive/2005/07/01/434814.aspx
http://blogs.msdn.com/astebner/archive/2005/09/27/474744.aspx
http://blogs.msdn.com/astebner/archive/2005/10/30/487096.aspx