Optimize Microsoft 365 Licenses with PowerShell
Stop paying for licenses nobody uses. Build a monthly PowerShell workflow that reports on, reclaims, and reassigns Microsoft 365 licenses.
Microsoft 365 licensing is one of the easiest places to lose money. Inactive accounts, old shared mailbox conversions, and unassigned add-ons all stack up — and nobody notices until the renewal conversation.
PowerShell makes this auditable on a schedule. PSForge gives you the licensing tasks, ready to drop into a workflow you can run every month.
Where M365 licensing waste hides
- Disabled or never-signed-in users still holding licenses
- Departed employees whose accounts were not properly offboarded
- Add-ons (Power BI Pro, Defender, Visio) assigned by mistake
- Shared mailboxes still consuming a paid mailbox license
What a license workflow should give you
The goal is not just a one-off report. It is a recurring workflow that exports usage, flags candidates for reclamation, removes licenses safely from accounts that fit the rules, and keeps a paper trail.
PSForge takes care of the script generation so you can focus on the policy: who counts as inactive, what happens to their data, and which SKUs you want to recover.
Example monthly license optimization workflow
- Export current license usage by SKU
- List inactive accounts that still hold licenses
- Remove licenses from disabled or departed users
- Reassign reclaimed licenses to a pending-hire pool
- Generate a license savings summary for finance
Final thoughts
Most organizations could reclaim a real percentage of M365 licenses if they just had the time to look.
A repeatable PSForge workflow turns that one-off project into something that runs every month.