SOLVED

Update an app which was manually installed by the user

Iron Contributor

We onboarded a few devices to Intune. Users have all sort of apps installed on their devices. Now, I want to update those apps. E.g. user installed notepad++ version 7 two years ago, and I now want to update notepad++ to version 8.

 

I managed to create a new win32 app for notepad++ version 8, but how do I tell the app to update the existing installation on the user device?

21 Replies

I think it automatically updates it (npp.8.1.9.2.Installer.x64.exe /S) 

I would also use app supersedence to update automatically for the future.

https://docs.microsoft.com/en-us/mem/intune/apps/apps-win32-supersedence

That was my first reaction to this question too, I changed it in to it automatically updates when installing a new version. He doesn't have Notepad++ in Intune for the current version, but yes.. The next update could be done using Supersedence
Thanks. Notepad++ was just an example. I am looking for a general approach to handle this scenario. There are many apps which do not update automatically.
This was also my first guess, but unfortunately the older version of the app is not in Intune, and in most cases I do not even have an old MSI file in order to add the older version.
Yes, exactly. The next update can be done like that. I am thinking about pushing a script through Intune to the device which uninstall the old version and then re-install the new version through an WIn32 app, but using that approach will probably result in data loss...
I think it's best to push out the update package and continue from there
How exactly do I push an update package?
By installing the current version, please test but my experience is that when you install a newer version of Notepad++ with the /S (Silent) parameter.. That it just updates it. For the next versions you can use the supersedence

I just tried that our and got this error in Intune:

Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel (0x80070666)

If you do it without Intune, on the client itself, does that work? And was the MSI version installed of the .exe version?
Yes, the previous version was installed using an MSI file. I'll have to try it out on the client when I get to it.

Install command: msiexec /i "Setup.MSI" /q
Uninstall command (Guid replaced): msiexec /x "{XXXX-XXXXX-XXXXX-XXXX}" /q
You could use a MSI file in Intune to update it? (Add a Line-of-business app)
I tried it on the client machine: the same error message appeared as in Intune. This means that in order to install the app, the previous version must be uninstalled. Is there any approach to tell the Win32 app to uninstall the previous version, or to execute the uninstall command before deploying the app?
You could create a win32app with the old version and a correct uninstall command, use that in the supersedence part of your new package with the option to uninstall the old version.
That's basically the initial problem I had: I don't have the original MSI file as the previous version is very old, so I cannot create an win32app. Or is it irrelevant what MSI file I use?
You can create a Win32 app with a empty install.cmd and a uninstall.cmd containing a "msiexec /x "{XXXX-XXXXX-XXXXX-XXXX}" /q" line with a detection on the current file in c:\program files.
Ok, understood. Then, I could also create a PowerShell script containing "msiexec /x "{XXXX-XXXXX-XXXXX-XXXX}" /q" and push it to the device for an uninstall. Will try it out.
test it on a workstation and deploy it like that, if that works you can configure Supercedence with your newer version specifying to use the uninstall of the old version
1 best response

Accepted Solutions
best response confirmed by Kiril (Iron Contributor)
Solution
Two things worked out in the end:

1. Manually uninstalling the app on the client, then installing the newer version using a win32 app
2. Deploying a PowerShell script from Devices > Scripts to the machine which uninstalled the app remotely, then waiting for the win32 to be installed on the device.

View solution in original post