Désinstaller un produit complètement
Panneau de configuration
La première des choses pour supprimer un logiciel est le panneau de configuration :
Puis désinstaller le produit voulu, par exemple Zorg.
Fichiers
Il faut supprimer le résidu des fichiers.
Registres
Au niveau des registres, il y a plusieurs niveaux à vérifier
Clé Uninstall
Les entrées dans cette clé vont supprimer le produit du panneau de configuration s’il persiste encore. Il faut aller dans :
Machine 64 bits : [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\
Windows\CurrentVersion\Uninstall]
Machine 32 bits: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\Uninstall]
Si la liste de guids est longue, vous pouvez faire une recherche du produit dans la liste des clés à gauche.
Supprimer la clé trouvée complètement. Vous trouverez à droite
Il se peut que vous trouviez une clé de la forme InstallShield_{GUID}, il faut la supprimer aussi.
Clé Installer
Products
Parcourir les GUID à gauche jusqu’à tomber sur le produit recherché en fonction de l’installation en cours (Works, PharmaX, Zorg, AfterWave…), dans le cas de Zorg il faut faire la recherche sur Zorg.
Upgrade Codes
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\UpgradeCodes]
Il faut ensuite supprimer les UpgradeCodes, mais là il faut chercher le GUID dans les valeurs (à droite) et non dans les clés (à gauche)
Features
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Features]
Dans les Features, il faut recherche GUID du produit noté dans l’étape précédente. Si la recherche prend trop de temps car il y a trop d’entrées, faites un export puis faire la recherche dans le Notepad.
Shared
En exécutant une fenêtre PowerShell en mode Administrateur.
Collez le script suivant :
$productName = "\Inabex\Zorg"
$components = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\
$count = 0
Write-Output $productName
foreach ($c in $components)
{
foreach($p in $c.Property) { $propValue = (Get-ItemProperty "Registry::$($c.Name)" -Name "$($p)")."$($p)" if ($propValue -match $productName) { Write-Output $propValue $count++ Remove-Item "Registry::$($c.Name)" -Recurse } }
}
Write-Host "$($count) key(s) removed"
Veillez à changer au niveau du script le nom du produit puis de lancer le script en cliquant sur le bouton: