One challange I hear from customers and other IT Pros working with VPP (Volume purchase program) applications from Apple in Intune is that it if you have multiple VPP accounts and need to manage the application deployment for those in Intune there’s no way of seeing which app is linked to a specific VPP account from the Client App -> App overview pane without clicking on the specific app and in the Overview see which VPP account this application was bought with.
Since there’s no column in the Client app -> App overview for showing the VPP account it can be tedious if one application has been bought by several accounts but you need to deploy the app from a specific VPP account or if you just want to have an easy overview.
To solve this I came up with the Idea of using the Owner column and to populate the VPP account information there so we can see it from the App overview pane. And Instead of manually inputting this information for all the VPP apps I turned to our beloved friend Powershell to help us out. There are several levels of automation that can be done but in this post I’m just going to focus on one of the simplest way to get started in my opinion.
Tools to our disposal – Intune Powershell SDK
If this is the first time you hear of the Intune Powershell SDK i recommend you check out my earlier blog post on what it is and how to get started here: https://timmyit.com/2018/10/22/intune-powershell-sdk/
The Intune Powershell SDK is an easy way of doing administrative tasks with the help of all the cmdlets that the SDK includes. And if you don’t want to use the SDK and still do the same things that’s also possible since the SDK uses the power of Graph API and invoke-restmethod so you can create your own functions and cmdlets if you feel the need for that but to keep it simple I will not cover that in this post but let me know if that’s something that interest you for a future post.
The script and execution
Here’s the script we’re going to use after the fact that you have Installed the Intune Powershell SDK that’s covered in my post https://timmyit.com/2018/10/22/intune-powershell-sdk/
The first thing thats going to happen is that we need to import the module and then we call the Connect-MSGraph cmdlet that will make prompt for a logon to your tenant. From there we will get all the VPP apps that’s been synced with Intune and store that in a variable.
Once we have all the apps the script will go through all the apps one by one and check if the Owner property of the app object is either Null or empty and if it is we will then update the Owner property with the same information the vppTokenAppleId property currently have.
Import-Module .\Microsoft.Graph.Intune.psd1 Connect-MSGraph $AllVPPApps = (Get-DeviceAppManagement_MobileApps | Where-Object { ($_.'@odata.type').contains("#microsoft.graph.iosVppApp" }) Foreach ($AllVPPApp in $AllVPPApps) { if ([string]::IsNullOrEmpty($AllVPPApp.owner)) { $AllVPPApp | Update-DeviceAppManagement_MobileApps -owner $AllVPPApp.vppTokenAppleId } }
Once the script succesfully finish we can now see that the owner property have been updated on all the VPP apps by running the following command
Get-DeviceAppManagement_MobileApps | Where-Object { ($_.'@odata.type').contains("#microsoft.graph.iosVppApp") } | Select-Object displayName, owner, vppTokenAppleId
What we can do now is to head back to the Intune portal and Client App – Apps click on Columns and select Owner and click Apply.
From the list of all applications we can now see which which VPP account each VPP application have been bought with.
Leave a comment or question in the comment section below.
That’s all for now and until next time, cheers !
Don’t forget to follow me on twitter
[twitter-follow screen_name=’Timmyitdotcom’]
And you can also find me blogging over at http://blog.ctglobalservices.com/
The limitation of this solution is that, in Apple Business Manager, VPP is no longer account-based – it’s location-based. So it’s entirely possible (and, in fact, fairly common), that one VPP account could manage multiple locations. So showing the account is not helpful at all.
I prefer to use Graph for this, as you can pull in the location information.
I trust you will be able to figure that all out 🙂