Working with supersedence relationships for Win32 apps

This week is all about Win32 apps in Microsoft Intune. Last year I’ve written a lot about the different features of Win32 apps and now, starting with the 2102 service release of Microsoft Intune, there is a new feature for Win32 apps. That feature is the ability to create supersendence relationships between different Win32 apps. That relationship can be used to update a Win32 app to a newer version of the Win32 app, or to replace a Win32 app with a different version of the Win32 app. Actually, it can even be used to replace a Win32 app with a completely different Win32 app. This post will start with the theory of supersedence relationships for Win32 apps, followed with the steps to configure a supersedence relationship. This post will end by showing the installation experience when using a supersedence relationship.

Introduction to supersedence relationships for Win32 apps

The different supersedence relationships for Win32 apps

Starting with the 2102 service release of Microsoft Intune, it’s possible to create one or more supersedence relationships between Win32 apps. Those supersedence relationships can be used to update or replace any specified Win32 app. When using the supersedence relationship to update a Win32 app, that requires the actual app installer, of the superseding Win32 app, to handle the update intelligence. The app installer should be able to handle the installation, when the superseded Win32 app is already installed on the device. That enables an IT administrator to relatively easy introduce a new version of a Win32 app in an organization. As an example, think about updating FoxitReader from version 9.x to 10.x (see also Figure 3). When using the supersedence relationship to replace a Win32 app, that actually requires nothing special from the app installer, of the superseding Win32 app, itself. The app installer doesn’t need to perform any action, as Microsoft Intune will trigger the uninstallation of the superseded Win32 app. That enables an IT administrator to relatively easy replace a Win32 app with a completely different Win32 app. As an example, think about replacing FoxitReader 10.x with AdobeReader DC 21.x (see also Figure 4).

The number of supersedence relationships for Win32 apps

When configuring supersedence relationships for Win32 apps, it’s important to keep in mind that there is a maximum of 10 supersedence relationships within a chain. That means that when for example a Win32 app of FoxitReader 10 supersedes a Win32 app of FoxitReader 9 and that Win32 app of FoxitReader 9 supersedes a Win32 app of FoxitReader 8, the Win32 app of FoxitReader 10 already has 2 supersedence relationships. Every relationship in the configured chain counts. The good thing, however, is that the information about the number of supersedence relationships is shown during the configuration as the Superseded Count (see also Figure 1).

Important: There is a maximum of 10 supersedence relationships for Win32 apps within a chain.

The information about the supersedence relationships can also be retrieved via the Microsoft Graph API. The basic information information – the number of supersedence relationships – is available as a property of the win32LobApps object and can be retrieved by using a HTTP request to query the endpoint below.

https://graph.microsoft.com/beta/deviceAppManagement/mobileApps

More details can be retrieved by looking at the properties of the mobileAppSupersedences object and can be retrieved by using a HTTP request to the query the endpoint below. The mentioned mobileAppId is simply the id of a Win32 app. As an example of the information that will be showed, below is also a response of the earlier mentioned supersedence relationships of the Win32 app of FoxitReader 10. That Win32 app has a parent and child target type, a replace and update supersedence type and the different counts. Basically all the different configuration options in one query example.

https://graph.microsoft.com/beta//deviceAppManagement/mobileApps/{mobileAppId}/relationships
{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceAppManagement/mobileApps('9e786997-7be1-4b0d-95ae-6b1fbe96097f')/relationships",
    "value": [
        {
            "@odata.type": "#microsoft.graph.mobileAppSupersedence",
            "id": "4006b5e0-c203-46be-af63-e7b57e09a958_9e786997-7be1-4b0d-95ae-6b1fbe96097f",
            "targetId": "4006b5e0-c203-46be-af63-e7b57e09a958",
            "targetDisplayName": "AdobeReader DC 21.001.20145",
            "targetDisplayVersion": "21.001.20145",
            "targetPublisher": "Adobe Systems Incorporated",
            "targetType": "parent",
            "supersedenceType": "replace",
            "supersededAppCount": 1,
            "supersedingAppCount": 0
        },
        {
            "@odata.type": "#microsoft.graph.mobileAppSupersedence",
            "id": "9e786997-7be1-4b0d-95ae-6b1fbe96097f_e8957d7a-62e1-4dc0-b69f-7aaabdbf7f72",
            "targetId": "e8957d7a-62e1-4dc0-b69f-7aaabdbf7f72",
            "targetDisplayName": "FoxitReader 9.7.1.29511",
            "targetDisplayVersion": null,
            "targetPublisher": "Foxit Software Inc",
            "targetType": "child",
            "supersedenceType": "update",
            "supersededAppCount": 0,
            "supersedingAppCount": 1
        }
    ]
}

The assignment behavior of supersedence relationships for Win32 apps

When the supersedence relationship for Win32 apps is configured, it’s important to keep in mind that there is no automatic targeting. Each Win32 app much be explicitly assigned for the supersedence relationship to take effect. When a superseding Win32 app is not assigned and applicable to the device with the superseded Win32 app, nothing will happen. Only when the superseding Win32 is assigned and applicable to the device with the superseded Win32 app, the supersedence relationship will kick in. When the superseded Win32 app is not installed on the device, the superseding Win32 app will just install without any required actions coming from the supersedence relationship. In other words, the supersedence relationship is not a requirement for the installation of the Win32 app.

Note: An available superseding Win32 app will not trigger the supersedence relationship.

A short summary of the behavior of the different supersedence relationships of Win32 apps, in combination with the assignment intent of the superseding Win32 app, is described in the table below.

ScenarioRequired assignmentAvailable assignment
The superseded Win32 app exists on the device and Uninstall previous version is set to Yes (supersedence relationship is replace)– The installation process of the superseding Win32 app is automatically started
– The superseded Win32 app will be uninstalled
– The superseding Win32 app will be installed
– The installation process of the superseding Win32 app must be manually started
– The superseded Win32 app will be uninstalled
– The superseding Win32 app will be installed
The superseded Win32 app exists on the device and Uninstall previous version is set to No (supersedence relationship is update)– The installation process of the superseding Win32 app is automatically started
– The superseding Win32 app will be installed
– The superseded Win32 app is up to the installer
– The installation process of the superseding Win32 app must be manually started
– The superseding Win32 will be installed
– The superseded Win32 app is up to the installer
The superseded Win32 app doesn’t exist on the device– The installation process of the superseding Win32 app is automatically started
– The superseding Win32 app will be installed
– The installation process of the superseding Win32 app must be manually started
– The superseding Win32 app will be installed

Note: Manually starting the installation process of the superseding Win32 app is referring to the Company Portal (app or website).

Configuration of supersedence relationships for Win32 apps

Now let’s have a look at the configuration of a supersedence relationship for Win32 apps. That configuration can be achieved during the steps of adding a new Win32 app and by editing an existing Win32 app. The actual steps for adding a supersedence relationship are the same for both. The four steps below walk through the process of adding a supersedence relationship for an existing Win32 app. As an example AdobeReader DC 21.x is used that will replace FoxitReader 10.x.

Important: Supersedence relationships can only be applied to Win32 apps.

  1. Open the Microsoft Endpoint Manager admin center portal and navigate to Apps > Windows
  2. On the Windows | Windows apps blade, select the superseding Win32 app and navigate to Properties
  3. On the Properties of the superseding Win32 app, perform the following actions and click Review + save
  • Navigate to the Supersedence section and click Edit to open the Edit application wizard
  • On the Supersedence page, click Add
  • On the Add Apps blade, select the superseded Win32 app and click Select

Note: The Superseded Count shows the number of supersedence relationships in the chain connected to that specific Win32 app.

  • On the Supersedence page, with the selected superseded Win32 app, select Yes or No with Uninstall pervious version

Note: The configuration of Uninstall previous version determines the behavior of the supersedence relationship. When using Yes the supersedence relationship will be replace and when using No the supersedence relationship will be update.

  1. On the Review + save page, click Save

Installation experience with supersedence relationships for Win32 apps

The installation experience with supersedence relationships for Win32 apps is interesting to look at. Both, from a notification perspective as from a logging perspective. The first installation experience is of an update supersedence relationship for a Win32 app. Below in Figure 3 is an example of FoxitReader 10.x that will update FoxitReader 9.x. The notifications shown on the right are what the user will see on the device. It informs the user about the update. That information can be related, by the IT administrator, to the information shown in the IntuneManagementExtension.log. A few easy links are highlighted below on the left. That includes the information about the update and a link to the update notification.

The second installation experience is of a replace supersedence relationship for a Win32 app. Below in Figure 4 is an example of AdobeReader 21.x that will replace the earlier updated FoxitReader 10.x. The notifications on the right are what the user will see on the device. It informs the user about the replace (and actually even about the update). The IT administrator can see some interesting information in IntuneManagementExtension.log. That log shows a few interesting pieces of information that are highlighted below on the left. The includes information about the update and the replace supersedence relationships.

More information

For more information about the supersedence relationships for Win32 app in Microsoft Intune, refer to the documentation about Add Win32 app supersedence.

18 thoughts on “Working with supersedence relationships for Win32 apps”

  1. Do you know if you can remove Assignments from the app that is being superseded? so that it doesn’t install anymore in computers that get enrolled in intune. Or the superseding relationship needs both the new and the old app to be assigned?
    Thanks!

    Reply
  2. I see your note about “An available superseding Win32 app will not trigger the supersedence relationship.” and I am wondering if you have any idea on how to update those apps?
    We have a lot of apps set as Available and our users install them from the Company Portal when needed, and we need a way to automatically update those. I was hoping the new Supersedence feature would fix that, but right now our only option still seems to be to target a required installation to all computers which has the app installed, and that is quite tedious work.

    Reply
      • Hi, I think we have the same scenario as Pär
        Say that we have foxit v9 deployed as available for all users to install from the company portal. Now we want to supersede that with v10 and update all v9 installations to v10 without the user manually starting the installation. So basically is there a way to supersede an available app and have the new version install without input from the user? (besides the method Pär is talking about)

        With regards
        Andreas

        Reply
  3. Hey Peter

    Thanks for your exciting post! How do you actually do it when you have an app which have dependencies to other apps?

    Regards,
    Sascha

    Reply
  4. Hi Peter
    Thanks for posting this. In the “assignment behavior” section you mentioned “Each Win32 app much be explicitly assigned for the supersedence relationship to take effect. When a superseding Win32 app is not assigned and applicable to the device with the superseded Win32 app, nothing will happen” … but here you’re saying doesn’t require both apps to be assigned, can you clarify? Thanks

    Reply
  5. Hi Peter,

    Great article, a related question. If a user updates and App on their PC that was deployed as described will Endpoint downgrade it again the the orignal App deployment.

    Thanks – Gerry

    Reply
  6. I have a problem. I would like to supersede an app version 2 with version 4. problem is that app version 2 is a dependency to another app and not published by itself. version 4 will also be a dependency to the same app and not published either. how do I upgrade this app from version 2 to 4. i get an error message stating that i can not have both a dependency relationship AND a supersedence in the sam app. this is stupid. Can I get around it by simply replacing the intunewin file in version 2? but that wouldnt trigger an upgrade to version 4. also it seems like intune does not track installations of dependencies, only published apps…

    Reply
    • Hi Hasse,
      That behavior is indeed not fitting for every situation. You could look at first upgrading the existing apps to version 4. And only create the dependency once the upgrade is finished.
      Regards, Peter

      Reply
  7. A little word of warning:
    Quoting Microsoft: supersedence is not supported in ESP
    https://docs.microsoft.com/en-us/mem/intune/apps/apps-win32-supersedence

    It doesn’t mean that it won’t work. It is a question of if you need the ESP to install applications for your users or not.
    I am not defining any apps install requirement for ESP to continue – BUT, they all got installed under ESP if the user is not pressing the ‘continue anyway’ button. This way the user has the opportunity to wait and get a finished configured machine in the end before logging in. In my environment this is preferred.
    When I superseded an app, the machine app part in ESP got ‘escaped’ all together and there weren’t any apps installed when the user logged in. As this is not what I want, I had to drop the idea of using supersedance… The way forward would maybe be to configure ESP to block device use until all other apps but the superseded one are installed, but this can give other complications in relation to ESP… with other words, as for me, I decided not to use supersedance altogether – anyway until this behavior is corrected…
    So it is all about how you do things but I think that this is something folk should be aware of…

    Reply

Leave a Reply to hasse Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.