Uninstall String mit PowerShell finden
Windows Administratoren müssen auf Rechnern laufend Programme, beziehungsweise Software installieren und wieder deinstallieren. Leider ist die Suche in der Registry nach dem “Uninstall String” oft sehr Mühsam, da mit der Suche sehr viele Einträge gefunden werden. Noch dazu gibt es die Registry Pfade in 32bit und 64bit. Also es gibt zwei verschiedene Pfade in der REgistry, in denen die Uninstall Informationen stehen können. Das kommt natürlich je nach Anwendung darauf an.
Vor allem Administratoren die mit Matrix42 Empirum und SCCM Software verteilen, benötigen die Uninstall-Strings sehr oft: Diese werden natürlich zum Deinstallieren von Software benötigt.
Uninstall Strings in der Windows Registry
Wie oben im Text schon erwähnt, gibt es für die 32bit und 64bit Anwendungen verschiedene Pfade in der Registry. Diese wären folgende:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall UND HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Je nach Architektur der Anwendung werden die Uninstall Strings in den verschiedenen Pfaden der Registry abgelegt.
Uninstall String finden mit PowerShell
Um nicht händisch in beiden Pfaden die Werte suchen zu müssen und alle einzelnen GUID´s durchsuchen zu müssen, schafft PowerShell Abhilfe. Mit diesem Befehl werden gleichzeitig beide Bereiche nach den Uninstall Informationen der Software durchsucht.
Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | Where-Object {$_.DisplayName -match "java" } | Select-Object -Property DisplayName, UninstallString
In diesem Beispiel wird nach “java” gesucht, das muss natürlich je nach Suche angepasst werden 🙂
Danach werden alle Strings zum Deinstallieren per PowerShell aufgelistet.