How to remove unused Microsoft 365 licenses (step-by-step, 2026)

Microsoft 365 cost optimization · ~6 min read

Finding unused licenses is half the job — the savings only land when you actually remove them. Here's how to do it safely: from a single user, in bulk with PowerShell, and by reducing the seats you're paying for at renewal. (First, identify what's reclaimable — see the license audit checklist.)

Before you remove anything: removing a license can start a countdown on that user's service data (mailbox, OneDrive). For leavers, convert the mailbox to a shared mailbox (free under 50 GB) and apply retention to OneDrive first. For active users you're just right-sizing, this isn't a concern.

1. Remove a license from one user (admin center)

Microsoft 365 admin center → Users → Active users → select the person → Licenses and apps → untick the license → Save. Fine for one-offs.

2. Remove in bulk with PowerShell

For more than a handful, script it. Get the SKU you're removing, then loop over a CSV of UPNs:

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

# The SKU to remove (example: Microsoft 365 E5)
$sku = (Get-MgSubscribedSku | Where-Object SkuPartNumber -eq 'SPE_E5').SkuId

# users.csv has a column: UserPrincipalName
Import-Csv .\users.csv | ForEach-Object {
  Set-MgUserLicense -UserId $_.UserPrincipalName -AddLicenses @() -RemoveLicenses @($sku)
}

(Removing licenses needs a write scope — User.ReadWrite.All — unlike the read-only audit. Run the audit first, review the list, then act.)

3. Reclaim unassigned seats (the cleanest win)

Unassigned seats are licenses you pay for that aren't on anyone — removing licenses from users doesn't reduce that bill by itself. Lower the purchased quantity: admin center → Billing → Your products → the subscription → Manage seats → reduce. Note your term: monthly plans can usually shrink at the next cycle; annual commitments reduce at renewal.

4. Don't forget disabled accounts

Blocked sign-in doesn't stop billing. Strip licenses from any accountEnabled = false user — and finish offboarding so they don't linger.

5. Re-run monthly

Waste returns the moment offboarding slips or a project ends. A monthly pass keeps the savings from leaking back.

Find what to remove — in dollars

SeatScout produces the read-only list of exactly which seats are reclaimable and what each is worth, so removal is a quick, confident step. Free tier available.

Get SeatScout →

Related: Find wasted M365 licenses · License audit checklist

SeatScout is independent and not affiliated with Microsoft. Test changes on a pilot user before bulk operations.