Quick and easy application Inventory with Intune

One of the less-used features in Intune is the Discovered Apps link within Device Details:

This gives a list of all apps it has found, whether deployed by Intune or installed in some other way.

Sadly, out of the box, you have to manually click through each device to have a look which is going to be unmanageable for large estates.

After a Reddit post discussing this, I realised I could grab the values from Graph, do some array based magic and give a basic software inventory for the entire estate and here it is!

As always, you can download the script from my GitHub or from PS Gallery:

Install-Script -Name intune-inventory-discovered-apps

When you run it, you will get a GUI with a list of the apps in your estate and the count of devices with it installed:

As it uses GridView, you have full search and Filter capabilities as well.

Clicking on an app will output the devices it has been discovered on, this will display in the PowerShell window, but will also populate the $deviceswithappinstalled array should you want to export the list.

Hopefully this is of use, comments, feedback and suggestions always welcome!

16 thoughts on “Quick and easy application Inventory with Intune”

  1. Dang, doesn’t work out-of-the-box. Maybe you can help?
    (1) Why does this script install every graph module, I’m guessing it only requires 1 or 2?
    (2) I’m having issues due to permissions, seems Intune Admin is not sufficient. What additional permissions does the script need in order to run?

    • Sorry, my fault for the first one, updated now to just use the authentication module

      Intune admin should be enough for it to run, but it might be it’s struggling to give the graph permissions required initially, try Azure AD admin as well to see if that nudges it along. The scopes for the script itself are Managed Devices, Device Config and Managed apps

  2. Hi Andrew,

    I was trying to run your powershell scripts (intune-inventory-discovered-apps.ps1 & Get-intune-apps.ps1), it is prompting for Admin consent stating “Unverified” publisher. its stating “Only accespt if you trust he publisher”, can you please give me overview of requested permissions to run above scripts?


    • Hi,

      Those errors are just because the scripts aren’t signed (code signing certs are quite expensive). The actual graph permissions will display when it calls Connect-MgGraph and it will give you the option to consent.

  3. Hi,

    Great script, has been very useful! When trying to search for an app that includes a + symbol (e.g C++), the script errors for each device.

    Says “parsing Microsoft Visual C++ etc.” – Nested quantifier +.

  4. Excellent script.

    I found that you had to highlight the App you wanted information on the click OK to see who had it installed then the PowerShell screen just sat there and I had to do CTRL + X to get out of it. Is this correct?

    • Hi, after selecting the app and clicking ok, it should give you the machine details in the PowerShell window and then exit back to the prompt when finished. It runs a transcript into the temp directory, if yours is hanging, can you send me a copy and I’ll see what’s happening


  5. Hey Andrew,

    first of all really cool tool which helps us a lot.
    I have a short question depending the software list output, do you think it will be a big problem to specifie which software i’m looking for.
    The main reason is to save time.

    Thanks in advance

  6. i have seen that.
    my thought was only to search for 1 or 2 products to get the output a little faster 🙂

    last question, what is the best way to export the software list to a csv file?

    • I don’t think it would be a lot faster, the reason it runs slowly is because it has to loop through every device to grab the discovered apps.

      To export, it’s all in $appslist so $appslist | export-csv c:\folder\filename.csv should work


Leave a Comment