Désinstaller un programme via le registre ou PowerShell
Chaque programme installé inscrit une commande de désinstallation dans le registre. Quand Paramètres → Applications ne parvient pas à le supprimer, ou qu’il faut le retirer en silence, c’est cette commande qu’on utilise.
Où Windows range les commandes de désinstallation
Les programmes installés pour tous les utilisateurs se trouvent sous HKLM, les programmes 32 bits sur un Windows 64 bits sous WOW6432Node, et ceux installés pour vous seul sous HKCU. Chaque programme a une sous-clé avec DisplayName, DisplayVersion, UninstallString et souvent QuietUninstallString.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\UninstallHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallLister les programmes installés avec PowerShell
Ces deux lignes lisent les trois emplacements et affichent le nom, la version et les commandes de désinstallation.
$keys = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*"Get-ItemProperty $keys | Where-Object DisplayName | Select-Object DisplayName, DisplayVersion, UninstallString, QuietUninstallString | Sort-Object DisplayNameLancer la commande de désinstallation
Si QuietUninstallString existe, elle supprime le programme sans poser de questions. Sinon, lancez UninstallString en ajoutant le paramètre silencieux du type d’installateur (/S pour NSIS, /VERYSILENT pour Inno Setup). Pour un paquet MSI, le nom de la sous-clé est le ProductCode, et msiexec /x le supprime.
msiexec /x {PRODUCT-CODE-GUID} /qn /norestart"C:\Program Files\App\uninstall.exe" /SOu confier la tâche à winget
winget lit les mêmes clés du registre, y compris pour les programmes qu’il n’a pas installés, et lance leur programme de désinstallation.
winget listwinget uninstall --name "Nom du programme"Quand le programme de désinstallation a disparu
Si le fichier de désinstallation a été supprimé, réinstaller la même version le répare généralement ; le programme peut ensuite être désinstallé normalement. Ne supprimez une entrée du registre à la main que si les fichiers du programme ont déjà disparu, et exportez la clé avant de la supprimer.
Questions fréquentes
Pourquoi un programme n’apparaît-il pas dans Paramètres → Applications ?
Paramètres n’affiche que les entrées qui ont un DisplayName et ne sont pas marquées comme composants système. Les programmes portables n’inscrivent rien : on les supprime en effaçant leur dossier.
Qu’est-ce que le ProductCode d’un MSI ?
Un GUID qui identifie un paquet MSI. C’est le nom de la sous-clé du programme sous …\Uninstall ; ExeAtlas l’indique sur la page d’installation silencieuse de chaque logiciel distribué en MSI.