Are you paying for Microsoft 365 licenses no one is using? Every month, IT admins across organizations approve license renewals without a clear answer to one simple question: who is actually using what they have been assigned? The reality is that Microsoft 365 environments grow fast, new hires get licensed, roles change, and inactive licenses quietly pile up, draining budgets without anyone noticing.
And tracking this down with native tools is harder than it should be. Where do you even start? The data you need is scattered. License assignments live in one place, workload activity in another, and pulling it all together into something actionable means manually piecing the picture together.
In this post, we will explore where to find this information, what native Microsoft 365 tools offer, and how to get everything you need in one place effortlessly!
How to Check Usage Across Workloads in Microsoft 365
You can rely on native methods like Microsoft 365 admin center and PowerShell.
Using Microsoft 365 Admin Center:
To analyze usage across workloads in Microsoft 365 admin center, admins need to:
- Sign in to the Microsoft 365 admin center.
- Navigate to Reports → Usage.
With Microsoft 365 usage dashboard, admins can:
- View organization-wide activity summaries to understand overall adoption trends.
- Drill down to service-specific reports such as Exchange Online, SharePoint Online, OneDrive, Microsoft Teams, Engage, and more.
- Identify the number of active users per workload, activity counts, and usage patterns.
- Compare usage trends for the last 7, 30, 90, or 180 days to evaluate engagement levels.
Important: By default, Microsoft anonymizes user identities in usage reports to respect privacy. For individual-level analysis, admins must manually navigate to Settings → Org Settings → Reports and enable the anonymization toggle.
Using PowerShell:
For more granular analysis and automation, admins can use PowerShell to extract workload activity data programmatically. Firstly, connect to the Microsoft Graph PowerShell module. The cmdlet supports four predefined periods: D7 (7 days), D30 (30 days), D90 (90 days), and D180 (180 days). It’s ideal for monthly reviews and trend analysis.
Get-MgReportOffice365ActiveUserDetail -Period D180 –OutFile '.csv' Running this cmdlet retrieves Microsoft 365 active user details for the past 180 days. It’s the foundation of any license review because it answers, for each user, which workloads they have touched at all within the review window.
For deeper workload-specific analysis:
#Teams activity - meetings, calls, chat messages
Get-MgReportTeamUserActivityUserDetail -Period D180 -OutFile '.csv '
#SharePoint file access and sharing
Get-MgReportSharePointActivityUserDetail -Period D180 -OutFile '.csv '
#Exchange email send/receive counts
Get-MgReportEmailActivityUserDetail -Period D180 -OutFile '.csv '
#OneDrive file sync and access
Get-MgReportOneDriveActivityUserDetail -Period D180 -OutFile '.csv ' At this stage, admins now have usage data. But identifying inactivity is only half the process. The next step is acting on it.
Revoking Licenses for Inactive Users in Microsoft 365
Once admins have identified inactive users through the usage reports, the next step is to reclaim unused licenses to optimize costs. To remove a license from an inactive user in the Microsoft 365 admin center, admins need to:
- Sign in to the Microsoft 365 admin center.
- Navigate to Users → Active Users.
- Select the inactive user identified from the usage report.
- Click on the Licenses and apps tab in the user’s details pane.
- Uncheck the license(s) assigned to the user and click Save changes.
This ensures unused licenses are freed up and can be reassigned to other users or removed from the subscription to reduce costs.
However, while the steps seem straightforward, the process becomes far more complex at scale.
Limitations of Native Methods
Despite having both portal and PowerShell options, Microsoft 365 native tooling has several structural gaps that make systematic license optimization genuinely difficult.
First, reporting data latency is a concern. Usage reports are not real-time. Activity data is typically delayed 24 to 72 hours before appearing in the admin center. This means an admin pulling a report today cannot be certain it reflects yesterday’s activity. In practice, most admins build a 7 to 14-day buffer into their process to compensate, but this buffer cannot be automated or enforced using native tooling alone.
Second, there is no built-in correlation between license assignments and workload activity. Admins must manually export license data from one location and activity data from another, then merge them using spreadsheets or custom scripts. This manual reconciliation becomes increasingly error-prone and time-consuming as the organization grows.
Finally, there are no native Microsoft 365 policies, alerts, or automation rules that notify admins when a licensed user becomes or remains inactive. Building this requires custom Power Automate flows, scheduled scripts, or third-party tools.
This is where the need for a unified, consolidated approach becomes clear.
How Easy Entra Simplifies the Task
EasyEntra streamlines license management by consolidating Microsoft 365 license assignments and core workload activity, including services like Exchange, OneDrive, Teams, SharePoint, Engage, and Skype, into a single, unified view.
By utilizing the UnusedLicenses report type, administrators can generate a comprehensive view that identifies users who are not actively utilizing the services they have been assigned.
This report allows for real-time filtering across multiple dimensions, including:
- LastCoreWorkloadLicenseUse
- License Type
- Department
- Country
This makes it easy to pinpoint users who have never used their assigned core workloads or to quickly identify trends within specific departments or regions.
Additionally, EasyEntra allows administrators to export all report data in .csv or .tsv format, making it simple to share insights with department managers or stakeholders for review and approval before making license adjustments.
Beyond activity-based insights, EasyEntra’s built-in reports can also help identify:
- Disabled users who still have licenses assigned.
- Inactive users retaining active subscriptions.
Having all of this information in a unified, filterable view enables organizations to optimize license assignments, eliminate waste, and reduce unnecessary subscription costs with confidence.
Once the relevant accounts are identified, administrators can efficiently export the filtered results using simple keyboard shortcuts such as CTRL + A and CTRL + V, streamlining operational workflows even further.
Note: If your organization has anonymized report data enabled, you may need to adjust this setting to view identifiable user information. Detailed guidance is available here:
To learn more about how to identify Microsoft 365 users with licenses assigned but no recent activity across workloads, refer to the detailed step-by-step guide below: