Deinstalacija programa preko registra ili PowerShella
Svaki instalirani program upisuje naredbu za deinstalaciju u registar. Kad program nije moguće ukloniti u Postavke → Aplikacije ili ga treba ukloniti tiho, ta je naredba pravi put.
Gdje Windows čuva naredbe za deinstalaciju
Programi instalirani za sve korisnike nalaze se pod HKLM, 32-bitni programi na 64-bitnom sustavu Windows pod WOW6432Node, a programi instalirani samo za vas pod HKCU. Svaki program ima potključ s vrijednostima DisplayName, DisplayVersion, UninstallString i često QuietUninstallString.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\UninstallHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallPopis instaliranih programa u PowerShellu
Ova naredba čita sva tri mjesta i prikazuje naziv, verziju i naredbe za deinstalaciju.
$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 DisplayNamePokrenite naredbu za deinstalaciju
QuietUninstallString, ako postoji, uklanja program bez pitanja. Inače pokrenite UninstallString i dodajte parametar za tihi rad prema vrsti instalacijskog programa (/S za NSIS, /VERYSILENT za Inno Setup). Kod paketa MSI naziv potključa je ProductCode, a msiexec /x ga uklanja.
msiexec /x {PRODUCT-CODE-GUID} /qn /norestart"C:\Program Files\App\uninstall.exe" /SIli neka to obavi winget
winget pronalazi programe u istim ključevima registra, uključujući one koje nije sam instalirao, i pokreće njihov program za deinstalaciju.
winget listwinget uninstall --name "Naziv programa"Kad programa za deinstalaciju nema
Ako je datoteka programa za deinstalaciju obrisana, ponovna instalacija iste verzije obično je vraća, nakon čega se program može normalno ukloniti. Unos u registru ručno brišite samo kad datoteke programa više ne postoje, a ključ prije brisanja izvezite.
Česta pitanja
Zašto se program ne prikazuje u Postavke → Aplikacije?
Postavke prikazuju samo unose koji imaju DisplayName i nisu označeni kao komponente sustava. Prijenosni programi ništa ne registriraju i uklanjaju se brisanjem svoje mape.
Što je ProductCode paketa MSI?
GUID koji označava jedan paket MSI. To je naziv programova potključa pod …\Uninstall i prikazan je na stranici o tihoj instalaciji svakog programa MSI na ExeAtlasu.