Find the M365 licenses nobody's using.
Recover the spend — in an afternoon.
A free, read-only scan cross-checks every assigned Microsoft 365 license against real activity and shows you exactly which seats are dead weight — and what they cost. Nothing to install in your tenant. The full License Auditor, with a boardroom-ready PDF report and costed recommended actions, is available now.
Install-Module ServerBridge.LicenseScan -Scope CurrentUser
Invoke-LicenseScan
Invoke-OffboardingCheck
Two free commands: unused licenses, and what the leavers still hold · Windows PowerShell 5.1 or PowerShell 7 · or download the signed scripts
How much are you wasting?
Drag to match your tenant. The audit finds the real ones.
Your tenant
Total assigned M365 licenses across the tenant.
Sets the average monthly price per recovered seat. Microsoft list prices from July 1, 2026; you may still pay the old price until renewal.
Your guess — the free scan replaces it with your real figure.
Spend on unused seats, at your estimate
per year · 15 reclaimable seats
Read-only PowerShell · no app registration · runs in 5 minutes
How it works
Three Graph checks, one dollar figure.
Read your license inventory
Every subscribed SKU and who it's assigned to — pulled straight from Microsoft Graph.
Cross-check real sign-in activity
Match each licensed user against their last sign-in to find dormant and disabled seats.
Put a dollar figure on the waste
Price the dead seats by SKU and total your recoverable spend — with an exportable list.
Read-only, by design
Delegated, least-privilege Graph access. It never changes, removes, or stores anything.
Flat annual price — no per-seat billing
One flat annual price, set by tenant size. Every tier includes the full audit.
Starter
Up to 50 users
billed annually · no auto-renew
- Full unused-license audit
- Sign-in activity cross-check (90-day)
- PDF report you can hand to someone
- Licensed guests & shared mailboxes, flagged for review
- Recommended actions, costed by SKU
Team
51–300 users
covers the entire M365 Business range
- Everything in Starter
- Scheduled re-audits (runs unattended)
- Month-over-month drift tracking
- PDF shows what changed since the last audit
- Offboarding list: what each leaver still holds
Enterprise
300+ users
multi-tenant & custom above 1,000
- Everything in Team
- Multi-tenant / CSP roll-up
- Priority support & onboarding
Every plan starts with a free scan — you see the dollar figure before you pay a cent.
See a sample report (PDF) · Guides · Already bought? Download the License Auditor
Free scan vs. paid audit
The free scan tells you what's wrong. The audit fixes it — and keeps it fixed.
What you get
Free
Community scan
Paid · from $149/yr
License Auditor
Questions people ask first
Short answers. If yours isn't here, email me.
Does it change anything in my tenant?
No. The free scan and the paid Auditor both use read-only, least-privilege Microsoft Graph permissions. Nothing is created, removed or modified — you act on the findings yourself in the admin center.
Do I need Entra ID P1?
No, but it sharpens the results. With P1 the Auditor reads each user's last sign-in directly. Without it, it falls back to Microsoft 365's usage reports, which are less precise — and if your tenant conceals user names in those reports, it can only flag disabled accounts that still hold a license. Turning that setting off for a single run gives you the full picture.
Does it need an app registration?
Not for a normal run — you sign in with a device code using your own admin account. Scheduled unattended re-audits and multi-tenant roll-ups do use an app registration that you create in your own tenant.
Where does my data go?
Nowhere. The PDF and CSV are written to your own machine, and the tool contains no telemetry or analytics. The only outbound call is the license check on paid tiers. The details are in the privacy policy.
What's actually in the PDF?
Your recoverable spend as a headline figure, the dormant and disabled seats behind it priced by SKU, costed recommended actions, and a review of licensed guests and shared mailboxes. On Team and Enterprise it also shows what changed since the last audit, and an offboarding list of what each leaver still holds. See a sample report.
What do I run it on?
It's a command-line tool for Windows (x64), Linux (x64) and macOS on Apple Silicon. The Windows build is code-signed and the macOS build is signed and notarized.
How is this different from the free scan?
The free PowerShell module gives you two commands and raw CSV: the headline wasted-spend number, and a basic offboarding check. The Auditor adds the PDF report, costed recommendations, scheduled re-audits with drift tracking, a review of licensed guest accounts and shared mailboxes, and the offboarding list in the report itself — per person, with what each one still holds. The table above compares them line by line.
Will it find a shared mailbox nobody uses?
Sometimes — and it tells you when it can't. Mailbox types come from Microsoft's usage
report, which only lists mailboxes that have had activity, so a shared mailbox sitting
completely untouched doesn't appear in it at all. Its type is reported as
unknown rather than guessed. The free PowerShell module can read types straight
from Exchange Online instead, which sees every mailbox whether it's been used or not —
that's Invoke-OffboardingCheck -UseExchangeOnline, and it needs a second
sign-in. The same option is planned for the Auditor.
What if it doesn't find enough to justify the price?
Run the free scan first — you see your number before paying anything. The downloadable licenses are a flat annual price with no auto-renew; the refund policy covers the rest.
Getting help
One person builds and supports this, which cuts both ways: no ticket queue, and no overnight shift either.
hello@leecrowesoftware.com — licensing, billing, refunds, or anything about a paid plan. I usually reply the same working day, and always within two.
A number looks wrong
Open an issue on GitHub — that is where both tools point, and it is public, so the next person with the same question finds the answer. Say whether your tenant has Entra ID P1 or P2; it decides which half of the product ran.
Before you write
Anything the scan printed above the totals usually explains the result — a note about Entra ID P1, a partial audit, or hidden user names in reports. Paste that line in and we will get there faster.
Also from Lee Crowe Software
Still running a file server next to Microsoft 365?
ServerBridge is a guided desktop wizard that moves on-premises file shares into SharePoint, OneDrive and Teams — with a full scan of the source before anything moves.
Get your number free — then act on it
Run the read-only scan and see your wasted license spend in minutes. When you're ready to recover it, the paid Auditor adds the PDF report, costed recommended actions and scheduled re-audits.
Install-Module ServerBridge.LicenseScan -Scope CurrentUser
Invoke-LicenseScan
Invoke-OffboardingCheck
Two free commands: unused licenses, and what the leavers still hold · Windows PowerShell 5.1 or PowerShell 7 · or download the signed scripts