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!
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
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?
Regards,
Ravikant
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.
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 +.
Hi,
Thanks for pointing that out! I’ve uploaded version 1.0.2 which should fix it
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
Thanks
I don’t have an email address for you
If you use the contact form, that will come direct to me and I can reply from there
There is no place to add attachments.
I’ll drop you an email