How to audit Microsoft Office 365 license assignments

How to audit Microsoft office 365 license assignments

When it’s time to do Microsoft Office 365 license reporting, some IT admins may be asked to find out which employees have what type of license and when they were assigned.

Finding the right information in your tenant can be challenging because the admin portals can only tell you what Microsoft Office 365 license each user has assigned but not when it was assigned. Luckily, there are a few options available to IT admins.

Admin centers: Limited Microsoft Office 365 license information

If you try to use the general Microsoft 365 admin center, you will only see a list of assigned licenses for each user. The information provided is limited.

Assigned licenses for each user in Admin center

With the Microsoft Entra admin center, you must click on each user on the list to see the licenses and a summary of enabled service plans.

A user's assigned licenses in Microsoft Entra admin center

The Microsoft 365 Active Users report: not all service plans included

When you get the Microsoft 365 Active users report, you will see that it only includes Microsoft 365 apps, Exchange, OneDrive, Teams, SharePoint, and Viva Engage.

License assignment dates for certain services in Microsoft 365 Active Users report

Unless you’re interested in auditing Microsoft Office 365 license assignments based on these few service plans, you will not be able to get all the information you need in either of the admin centers. Your other option is to use PowerShell.

Get Microsoft Office 365 license assignment dates with Microsoft Graph PowerShell

To retrieve detailed service plan information, you can use Microsoft Graph PowerShell.

Your script will first need to retrieve each user’s assigned licenses with the Get-MgUserLicenseDetail cmdlet.

Example: Get-MgUserLicenseDetail -UserId “username@company.com”

The parameter “-Property ServicePlans” can be used to retrieve service plan details for each assigned license.

This page has detailed instructions on how to do just that.

You may be worried that putting a script together seems complex. You’re right, it is a complex script. You also know that there is no way to test the script to avoid unexpected errors. Luckily there’s an easier alternative, and it’s called sapio365.

Report Microsoft 365 Office license assignment and costs with sapio365

One of the advantages of using sapio365 is that it gives you a complete picture of user accounts and their assigned licenses all at once in one place.

To start, select all users and get their assigned licenses.

Retrieving users' assigned licenses in sapio365

Add the service plan information by clicking on the “Service Plans” button and show the column ‘Service Assigned Date’.

It’s important to note that these dates must be regarded as approximations of when licenses were assigned because they reflect when services were activated, and not when the Microsoft Office 365 license was actually assigned by an administrator.

ustomize assigned licenses view with 'Service Assigned Date'

The next step is to group by users, and then by licenses.

Then select ‘Minimum’ on the ‘Service Assigned Date’ column to add the oldest date in the grouping.

Categorizing sapio365 grid view by users and licenses

Finally, select ‘Sum’ on the ‘Unit cost’ column to add the total cost of assigned licenses by user.

Adding total licenses costs and oldest license assignment date to view

If you want to create a summarized view, you must expand to level 1.

Creating a summarized view by collapsing groupings

With this information, you can now choose to export this view to a report or save it to apply it later.

Exporting and saving a sapio365 grid view

Not every IT admin is comfortable writing PowerShell scripts or searching for them, which is why it’s so convenient to have other options. You can learn how one customer used sapio365 to save thousands of dollars by finding inactive Microsoft Office 365 license costs here. sapio365 is a great tool for many other typical IT admin tasks and can help save you hours of time every day.

If you have a challenge that you thought was impossible to solve, why not request a demo? Or get a free trial of sapio365 and see what it can do for you!


Eric Houvenaghel

Eric’s passion is solving problems. It’s why he founded his company Ytria – so he could solve problems people had that they didn't even realize they had. With over 2 decades of experience as a software developer, Eric honed his expertise by crafting innovative solutions tailored to the needs of IT teams in both Microsoft 365 and Notes/Domino environments.


How to create an Office 365 login report

How to create a Microsoft Office 365 Login Report

As an IT admin, you may have to create a Microsoft Office 354 login report to find out which user…

How to find users with an SMTP forwarding email

How to List All Users with a Configured SMTP Forwarding Email

Have you ever had to find all the users who have configured SMTP forwarding emails only to realize…

How to revoke office 365 access

How to revoke Microsoft Office 365 access in bulk

From time to time, organizations may have a situation where the IT admin is asked to block certain…

microsoft teams usage report

How to See Microsoft Teams Usage Report on Frequency by Department

When companies buy Microsoft Teams licenses, they want to make sure that the licenses are being put…