Guides → How to find and remove unused Microsoft 365 licenses

How to find and remove unused Microsoft 365 licenses

Microsoft 365 licence waste comes in three forms, and they hide in different places: seats you pay for but never assigned, licenses still attached to blocked accounts, and licensed users who have not signed in for months. The first is the easiest money and the one most tenants have.

One thing to know before you start: freeing a licence does not stop the billing. You free the licence from the user, then separately reduce the seat count on the subscription. Skip the second step and you keep paying for an empty seat.

Unassigned seats: the quickest win

These are seats on your subscription that nobody holds. They usually accumulate from departed staff or a bulk purchase made in anticipation of hiring.

  1. Microsoft 365 admin center → Billing → Licenses. The list shows assigned versus available for every product.
  2. For anything with available seats, go to Billing → Your products, select the subscription, and choose Buy licenses / Remove licenses to lower the quantity.

The annual-commitment catch: if you are on an annual term, you generally cannot reduce the seat count mid-term — only at renewal, or within the first seven days after purchase. The renewal date is on the same subscription page. Set a reminder a few weeks before it, because that is your only window for a year.

If you buy through a partner or CSP, you cannot change quantities yourself. Ask them — they can see the same numbers you can.

Licenses on blocked accounts

When someone leaves, the usual offboarding is to block sign-in. The licence frequently stays attached, and keeps billing.

  1. Microsoft 365 admin center → Users → Active users.
  2. Add the Sign-in status column (or filter by it) to find blocked accounts.
  3. For each: select the user → Licenses and apps → untick the licenses → Save changes.

If the mailbox must be kept: convert it to a shared mailbox first — Exchange admin center → Mailboxes → select → Convert to shared mailbox — and then remove the licence. A shared mailbox under 50 GB with no in-place archive needs no licence at all, which is the single most commonly missed saving in small tenants.

Licensed users who never sign in

Accounts that are enabled and licensed but dormant. Typically interns who left, service accounts created for a scanner or an app, or a role that was never filled.

  1. Microsoft 365 admin center → Users → Active users → add the Last sign-in column, or use Reports → Usage → Active users.
  2. Confirm with the person's manager before touching anything. "No activity in 90 days" and "nobody needs this" are not the same claim.
  3. Block sign-in, convert the mailbox to shared if the mail matters, then remove the licence.

Service accounts are worth a second look. A scanner that only sends mail usually does not need a full mailbox licence — an SMTP relay connector or a dedicated sending service is cheaper and more robust. An app that only reads data often needs no licence either, just an app registration.

Sign-in activity in the admin center depends on Entra ID P1 for the detailed view; without it you can still use the usage reports, which lag by a few days but are good enough for this purpose.

Doing it in bulk with PowerShell

For more than a handful of users, the Microsoft Graph PowerShell SDK is faster than clicking. To list enabled, licensed accounts with no recent sign-in:

Connect-MgGraph -Scopes "User.Read.All","AuditLog.Read.All","Organization.Read.All"

Get-MgUser -All -Property DisplayName,UserPrincipalName,AssignedLicenses,AccountEnabled,SignInActivity |
  Where-Object { $_.AccountEnabled -and $_.AssignedLicenses.Count -gt 0 } |
  Select-Object DisplayName, UserPrincipalName,
    @{n='LastSignIn';e={$_.SignInActivity.LastSignInDateTime}} |
  Sort-Object LastSignIn

Sort ascending and the dormant accounts are at the top, oldest first. SignInActivity requires Entra ID P1; without it the field comes back empty and you should use the usage reports instead.

Read first, change later. Produce the list, get it agreed, then act on it.

Questions

Does removing a licence delete the user mailbox?

The mailbox enters a 30-day grace period and is then deleted. If you need to keep the mail, convert the mailbox to a shared mailbox before removing the licence — shared mailboxes under 50 GB with no archive need no licence.

Why is my bill the same after I removed licenses from users?

Removing a licence from a user frees the seat but does not cancel it. Lower the quantity on the subscription itself under Billing → Your products. On an annual term you may only be able to do that at renewal.

How do I find unused licenses without PowerShell?

Microsoft 365 admin center → Billing → Licenses shows assigned versus available seats per product. For dormant users, add the Last sign-in column under Users → Active users.

Is this actually configured right in your tenant?

A read-only scan checks this and fifteen other things in about a minute, and shows you your grade and every finding for free. The full report with named accounts, costs and fixes is $79.

Scan my tenant →

Click paths verified October 2026. Microsoft renames things in the admin centers regularly; the underlying settings are stable even when the menus move.

More guides