đź”§ New: User Management Graph PowerShell Toolkit

Simplify user tasks like bulk creation, updates, password resets, deletions, license checks & more — all from one place.

🚀 Launch Toolkit

Track Microsoft 365 App Usage with Graph PowerShell (Get-MgReportM365AppUserCount)

As Microsoft 365 grows, so does the need to understand which apps your users rely on the most. Are people spending more time in Teams or Outlook? How fast is OneDrive adoption growing? The Get-MgReportM365AppUserCount cmdlet in Graph PowerShell gives you all those answers — straight from your PowerShell console.

This article walks you through how to generate M365 app usage reports, understand adoption trends, and export the data for further analysis.


Why Use This Report?

The Get-MgReportM365AppUserCount cmdlet retrieves usage information across core Microsoft 365 apps — including Teams, Exchange, SharePoint, OneDrive, and Yammer.

With this report, admins can:

  • Monitor adoption of Microsoft 365 apps over time
  • Identify which apps are underused
  • Generate visual trend reports for leadership reviews
  • Track user engagement during rollouts or migrations

Prerequisites

Before running the cmdlet, ensure you’ve met these requirements.

  1. Install or update the Graph module
  2. Install-Module Microsoft.Graph -Scope CurrentUser
    Update-Module Microsoft.Graph
                                                
  3. Connect to Graph with the required permission
  4. Connect-MgGraph -Scopes "Reports.Read.All"
  5. Keep these points in mind
    • -Period cannot exceed 180 days.
    • Accepted period values: D7, D30, D90, and D180.
    • Larger periods may take longer to generate due to data volume.

Cmdlet Syntax

Get-MgReportM365AppUserCount  [-Period <String>] [-OutFile <String>]

Parameters explained:

  • -Period → Optional. Defines the time span (D7, D30, D90, or D180).
  • -OutFile → Optional but recommended to save the report as a file.

Usage Examples

Example 1: Generate a 7-day app usage report

Get-MgReportM365AppUserCount -Period "D7" -OutFile ".\M365AppUsage_D7.csv"

Perfect for quick weekly insights on how M365 apps are performing.

Example 2: Generate a 30-day app usage report

Get-MgReportM365AppUserCount -Period "D30" -OutFile ".\M365AppUsage_D30.csv"

Ideal for monthly reviews and comparing app engagement over time.

Example 3: Generate a 180-day trend report (maximum period)

Get-MgReportM365AppUserCount -Period "D180" -OutFile ".\M365AppUsage_D180.csv"

A great option for quarterly or biannual reporting and executive dashboards.

Example 4: Automate report generation and store by date

$today = Get-Date "yyyy-MM-dd"
$outPath = ".\Reports\M365AppUsage_$today.csv"
Get-MgReportM365AppUserCount -Period "D30" -OutFile $outPath
                                        

This example dynamically creates a filename with today’s date — useful for automation or scheduled tasks.


Pro Tips

  • Stick to 180 days or less — Any value beyond that (like D270) will fail.
  • Schedule monthly reports — Automate the command using Task Scheduler or Azure Automation for consistent insights.
  • Combine with other reports — Merge this with Teams or mailbox reports to get a full M365 engagement snapshot.

Common Errors & Fixes

Error Cause Solution
“Invalid period specified” Used a value above 180 days Use only D7, D30, D90, or D180
“Access denied” Lacked required permissions Reconnect with Connect-MgGraph -Scopes "Reports.Read.All"
“Report data unavailable” Delay in Graph data refresh Wait a few hours and re-run the cmdlet
“Empty CSV file” No user activity within selected period Use a longer period or validate app adoption

Real-World Use Cases

  • Adoption Tracking: Measure whether Teams and SharePoint usage increased post-deployment.
  • License Optimization: Identify underused apps to plan license adjustments.
  • Quarterly Reviews: Present app adoption metrics to management with simple Power BI visuals.
  • IT Operations: Correlate app usage data with support tickets for performance insights.

Conclusion

The Get-MgReportM365AppUserCount cmdlet provides a simple yet powerful way to understand how your organization uses Microsoft 365 apps. By exporting usage reports to CSV, you can visualize adoption trends, optimize licenses, and make data-backed decisions for your M365 environment.

Combine this report with others like Get-MgReportMailboxUsageDetail and Get-MgReportTeamActivityCount to create a complete organizational usage dashboard — all powered by Microsoft Graph PowerShell.


Did You Know? Managing Microsoft 365 applications is even easier with automation. Try our Graph PowerShell scripts to automate tasks like generating reports, cleaning up inactive Teams, or assigning licenses efficiently.

Ready to get the most out of Microsoft 365 tools? Explore our free Microsoft 365 administration tools to simplify your administrative tasks and boost productivity.

© Your Site Name. All Rights Reserved. Design by HTML Codex