Desinstal·lar un programa amb el registre o PowerShell
Cada programa instal·lat desa una ordre de desinstal·lació al registre. Quan Configuració → Aplicacions no el pot eliminar, o quan cal treure’l en silenci, aquesta ordre és el camí.
On desa Windows les ordres de desinstal·lació
Els programes instal·lats per a tots els usuaris són a HKLM, els de 32 bits en un Windows de 64 bits a WOW6432Node, i els instal·lats només per a vós a HKCU. Cada programa té una subclau amb DisplayName, DisplayVersion, UninstallString i sovint QuietUninstallString.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\UninstallHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallLlisteu els programes instal·lats amb PowerShell
Aquestes ordres llegeixen les tres ubicacions i mostren el nom, la versió i les ordres de desinstal·lació.
$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 DisplayNameExecuteu l’ordre de desinstal·lació
Si hi ha QuietUninstallString, elimina el programa sense fer preguntes. Si no, executeu UninstallString i afegiu-hi el paràmetre silenciós del tipus d’instal·lador (/S per a NSIS, /VERYSILENT per a Inno Setup). En els paquets MSI, el nom de la subclau és el ProductCode, i msiexec /x l’elimina.
msiexec /x {PRODUCT-CODE-GUID} /qn /norestart"C:\Program Files\App\uninstall.exe" /SO feu-ho amb winget
winget troba els programes a les mateixes claus del registre, també els que no ha instal·lat ell, i n’executa el desinstal·lador.
winget listwinget uninstall --name "Nom del programa"Quan falta el desinstal·lador
Si el fitxer del desinstal·lador s’ha esborrat, normalment n’hi ha prou de tornar a instal·lar la mateixa versió per reparar-lo, i després el programa es pot eliminar amb normalitat. Esborreu una entrada del registre a mà només quan els fitxers del programa ja no hi siguin, i exporteu la clau abans d’esborrar-la.
Preguntes freqüents
Per què un programa no surt a Configuració → Aplicacions?
Configuració només mostra les entrades que tenen DisplayName i no estan marcades com a components del sistema. Els programes portables no registren res i s’eliminen esborrant-ne la carpeta.
Què és el ProductCode d’un MSI?
Un GUID que identifica un paquet MSI concret. És el nom de la subclau del programa a …\Uninstall i apareix a la pàgina d’instal·lació silenciosa de cada programa MSI d’ExeAtlas.