Uninstall any MSI application

(imported comment written by JackCoates91)

64 bit windows makes things a little tougher with registry redirection, here’s some ugly relevance that should be more complete.

q: (IF (x64 of operating system) THEN ((values “displayname” of it, values “UninstallString” of it) of keys of key “HKLM\software\microsoft\windows\currentversion\uninstall” of native registry, (values “displayname” of it, values “UninstallString” of it) of keys of key “HKLM\software\microsoft\windows\currentversion\uninstall” of x32 registry) ELSE (values “displayname” of it, values “UninstallString” of it as strings) of keys of key “HKLM\software\microsoft\windows\currentversion\uninstall” of registry)

Relevance golf?

(imported comment written by JackCoates91)

Thanks to Noah for some assistance in improving this:

q: (IF (x64 of operating system) THEN ((it as string) of (values “displayname” of it, values “uninstallstring” of it) of keys whose (exists (values “displayname” of it, values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of native registry; (it as string) of (values “displayname” of it, values “uninstallstring” of it) of keys whose (exists (values “displayname” of it, values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of x32 registry) ELSE ((it as string) of (values “displayname” of it, values “uninstallstring” of it as string) of keys whose (exists (values “displayname” of it, values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of registry))

(imported comment written by JackCoates91)

This version checks that there’s a value in there to report, and blocks Windows patches from showing up (you’ll still see Office patches though). I’m using this as an analysis now:

(it as string) whose (it as lowercase does not contain “spuninst.exe”) of (IF (x64 of operating system) THEN ((it as string) of (values “displayname” of it, values “uninstallstring” of it) of keys whose (length of (value “displayname” of it as string) > 0 and exists (values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of native registry; (it as string) of (values “displayname” of it, values “uninstallstring” of it) of keys whose (length of (value “displayname” of it as string) > 0 and exists (values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of x32 registry) ELSE ((it as string) of (values “displayname” of it, values “uninstallstring” of it as string) of keys whose (length of (values “displayname” of it as string) > 0 and exists (values “uninstallstring” of it)) of key “HKLM\software\microsoft\windows\currentversion\uninstall” of registry))

(imported comment written by lunchboxfl91)

How do I get this information…I tried analysis,but nothing. I am new any help would be great. Thanks.

(imported comment written by NoahSalzman)

“Nothing” is a little odd. Did you target the Analysis at a group of computers?

(imported comment written by lunchboxfl91)

Yes at a group of computer names… Maybe I just have to wait longer. So I just paste the code from Jack above in an analysis and it should take care of it right?

(imported comment written by lunchboxfl91)

Nevermind I got it to work. Thanks.

(imported comment written by Nitin_Gupta91)

I am new to BFX and need some help in uninstalling KB2464588, i have the uninstall string with me but need to create a relevance in which it should look for the KB article in Add/Remove and if found then the string or exe will run.

Thanks.

(imported comment written by dodi91)

I need to do the same thing. I actually downloaded the hotfix but dont know how to deploy it.

Help guys.