A community where customers and the community can provide feedback to make a better product for everyone! For more details on how we prioritize requests, please see:
Uninstall other editions detected on the device that isn't the deployed application.
For example: if the customer deploys 7-Zip 64bit MSI application as required to a device, and the device has 7-Zip 32bit EXE or any other flavour of 7-Zip installed that isn't 64bit MSI, uninstall those apps before installing 7-Zip 64bit MSI.
Today for customers to achieve this, they depend on configuring supersedence, or the vendors installers to do this for them, or use custom pre-scripts.
Just want to acknowledge that we definitely see this request and have done lots of thinking about it. We're just now coming out of some very long development cycles to first get Patch My PC Cloud and then Advanced Insights for Intune out the door. These were 'all heads down' kinds of efforts that we're glad to be through so we can return to our normal programming of knocking out features.
The main problem we're trying to get our head around on this one is how to do it both reliably and at scale.
To be rock solid, we'd need to essentially identify every version, every edition, ever released and document their uninstall strings. Doable, but very hard to scale.
To scale to every app in the catalog we'd really need a more general solution. Lots of ways to go here but it's clearly something that will look like the exact opposite of our current detection rules: "If you see anything like this in Add/Remove Programs, run its uninstall string." I believe we already have some recommended pre-scripts that do essentially this. However, those are very tactical; done where we know they are needed for functionality. There's a lot of edge cases that scare us; we don't want to uninstall the wrong thing because it matches a closely named application. As our catalog grows, this becomes a bigger and bigger problem for us: more apps that might look like other apps.
I'm looking at you Git[Everything Under the Sun].
Open to ideas here; help us get over our fears that creating this means we're going to break people.
To find everything existing on the system, use something like PSADT uses for Uninstalling an app:
Synopsis: Removes one or more applications specified by name, filter script, or InstalledApplication object from Get-ADTApplication.
Uninstall-ADTApplication -InstalledApplication <InstalledApplication[]> [-ArgumentList <String[]>]
EXAMPLE 1
I see this has gone to Planned - excellent news! In case some details aren't yet concrete and some anxiety remains, a couple thoughts...
A lot of the magic of PMPC is its ability to sanely continue working without a lot of administrative oversight, but in this case it may be warranted.
If this feature were opt-in per application, it could include a preflight experience that shows the apps that would be uninstalled based on current inventory data, requiring customer acceptance of each detected application. For approved apps, this would likely also benefit from surfacing newly discovered matching apps for acceptance and inclusion in the emailed reports.
Alternately, if this were just a one time opt-in, again showing currently detected apps, ideally the customer could add exclusion patterns for apps that are unique to the environment.
If you script a windows registry crawl to find uninstall strings, it could be made optional for relevant packages (same as disabling auto-update for chrome).
This leaves responsibility to admins setting up their individual PMPC deployments.
Technically, it's us who would break our distibution catalogue by not testing or selecting the wrong package option.
Admin education is possible, you already included excellent interactive webinars for all subscribers.
Some of this could be solved by querying on at least two pieces of information: app name, and publisher; this is based on the data pulled from the AppInvRawData report. I have an automation pipeline that runs, which adds devices to Entra groups based on whether they have an app installed, and that is part of my query. It's not 100% perfect, but it nails most of them pretty easily (I can further specify version, etc., if I really need to).
As some others have stated, a checkbox on the app deployment would be good, and a CYA warning message/link to a KB explaining would be beneficial to all.
I also love Stephanie Z's (and others) suggestion on ripping out user-based installs when utilizing a machine-based install. That's a massive headache we have here, that is still around to this day, especially regarding installs such as Chrome. I had to write a custom script for that one.
Probably should have a setting whether its ok to auto clean up system and all user installs of an app before upating it to the latest version.
I can't understate how necessary of a feature this is
I do need this urgently... that said, it should probably be behind a little checkmark. (Like disable builtin updates)
And it should uninstall userprofile installs, during a system install... the other way around is probably really hard but... at least executing a user uninstall from inside a system install?
+3
PMPC Folks: Almost 900 upvotes for this feature, and waiting 3 year and we only get this promoted to "NOTED"?
This is a very important feature.
This would turbo charge the utility that my organization is getting from PMPC.
It would also be nice if to could move applications from user context to non user context
+1
Definitely would be a very useful feature.
Looking forward to get this feature implemented to have a streamlined application environment
+1
Automatic uninstallation of older versions would be very helpful; I could see having this action dependent on a successful installation of the current version, rather than blowing away a working version before the latest one is installed.
+1
+1
+1
Yes, this would be a brilliant addition.
Yes please. This is true for many applications actually.