Thread execution failed

Ok, for a beginner, it looks like you’re starting off with a really complex scenario. Per-User installs are much more difficult to deal with than per-system installs, because you have to spawn the uninstall process as the user who installed it.

Do you by chance have MDM available in your deployment? I think that would make this a lot easier.

If you don’t, and you’re dealing with per-user installs, then I’m afraid it’s much more complex. You can use ‘override’ actionscript commands to run the uninstallers as either “the logged on user”, or as any other user account – but if you want it to run under some other user account, you will have to supply the username and password to launch the process.

I posted some summaries of the options at Tip - Action Override User settings . The simplest form would be to use example 2 where you override the uninstall commands to runas=currentuser

The other issue is that you have four different GUIDs listed for uninstall there. Are you sure that’s all of them, or are there other GUIDs that might correlate to different versions/architectures/browsers ?
As you’ve seen, you’re getting the exit code 1605. But the last command that executes will be the code that is preserved, you could have had three successful installs followed by the last one returning 1605 (because that version was not installed), and the only result you’d see is the 1605. You have to retrieve the log from the client to see the exit codes on each individual command.

So something you could try is to only execute the ones that are present (for the current user). Repeat this for each GUID you know of -

if {exists keys "FIRST_GUID" of keys "Software\Microsoft\Windows\CurrentVersion\Uninstall" of current user keys of (x32 registries; x64 registries)
override wait
runas=currentuser
waithidden "{pathname of system folder & "\msiexec.exe"}" /x {{FIRST_GUID} /qn
endif

if {exists keys "SECOND_GUID" of keys "Software\Microsoft\Windows\CurrentVersion\Uninstall" of current user keys of (x32 registries; x64 registries)
override wait
runas=currentuser
waithidden "{pathname of system folder & "\msiexec.exe"}" /x {{SECOND_GUID} /qn
endif

// repeat for each GUID
1 Like