POWERSHELL / EXCHANGEONLINEMANAGEMENT
FreeBeginnerRead-onlylow

Export mailbox sizes

Exports mailbox sizes and item counts.

Generated locally in your browser · Review before running · Opselith does not connect to your tenant

What this PowerShell script does

Exports mailbox sizes and item counts.

Requirements

  • CSV output path - Example: C:\Temp\report.csv

Environment

  • Module: ExchangeOnlineManagement
  • Permissions: View-Only Recipients
  • Output: CSV report
  • Context: Exchange Online PowerShell
  • Risk: Low
Review before you run The script is generated locally. Test outside production first.
NEXT STEP

Ready to generate

Configure Export mailbox sizes in the Builder, review the generated PowerShell and run it yourself in your own PowerShell session.

More about this script

Why use this template?

Use this free PowerShell script when you need to export mailbox sizes and item counts. It is generated locally and can be reviewed before you run it yourself in your own PowerShell session.

The template uses ExchangeOnlineManagement and requires View-Only Recipients. Output: CSV report. Level: Beginner. Action: Read-only. Risk: Low.

Review before running

The script is generated in your browser. Read it before you run it, and test it outside production first. “Read-only” describes the script itself; anything you add around it can still change data.

Generate the script

  1. Open the template in the PowerShell Builder.
  2. Enter the requested values and review the module, permissions, output and risk.
  3. Generate the script, read it carefully, and test it outside production before use.

The script is generated locally in your browser. Nothing needs to be uploaded to Opselith.

Generate Export mailbox sizes →
Before you runModule, permissions, inputs, compatibility and script checks
OPS / SCRIPT DETAILS

Script details

Exports mailbox sizes and item counts. Review these details before generating or running the script.

exchangeexportmailboxreporting
Generated here. Run by you.Opselith does not connect to your tenant or run PowerShell. After generating, review the script and run it in your own PowerShell session.

What it works with

Module: ExchangeOnlineManagement

ExchangeOnlineManagement lets PowerShell connect to and work with Exchange Online.

Context: Exchange Online PowerShell

Compatibility: PowerShell 7 is the supported target for this cloud template.

Permissions and changes

Permissions: View-Only Recipients

Risk: Low

Read-only: designed to collect information without intentionally changing the target environment.

Changes: Read-only. The script reads data and does not intentionally change the target environment.

Inputs

  • CSV output path - Example: C:\Temp\report.csv (Required)

What to expect

Output: CSV report

Expect a CSV file at the path you choose. Open it in Excel or another CSV viewer and review the rows.

Example: C:\Temp\report.csv

This template is in the Free library and is generated locally in your browser. Opselith does not run it; you review and run the script in your own PowerShell session.

Example use

Exports mailbox sizes and item counts.

Enter the required values in the Builder, review the generated script and confirm the output before running it.

Before you run: Make sure your account has View-Only Recipients. Check that the ExchangeOnlineManagement PowerShell module is available and that you are using the supported PowerShell version. Review the generated script and output path, then test outside production first.
Script checksWhat has been verifiedQA reviewed
Static checksPassed
PSScriptAnalyzerPending
Real-world run testNot yet recorded
Last checkedNot yet recorded

Real-world run results are shown only after Opselith reviews and accepts a tester report.

Tester: report a result →
TEST STATUSWhat Opselith has checked

Last reviewed: 10 Sept 2026

PSScriptAnalyzer: Awaiting a release PSScriptAnalyzer gate that includes this script. No analyzer pass is claimed yet.

Pending or Not yet recorded means there is no accepted result on file yet. A passed analyzer check does not mean the script has been run in a real tenant.

PRACTICAL GUIDE

How to use this result

Use this inventory to compare Exchange Online mailbox size, item count and last-logon statistics without changing mailbox configuration.

When this helps

  • Identify large mailboxes for capacity or archive review.
  • Create a size baseline before migration or mailbox-cleanup work.
  • Spot mailboxes where statistics could not be retrieved and need separate investigation.

How to read the result

  • TotalItemSize and ItemCount come from mailbox statistics; LastLogonTime is included when the available statistics cmdlet exposes it.
  • Status=ERROR is recorded per mailbox, so a partial CSV must not be mistaken for a complete tenant inventory.

Things to check

  • Mailbox statistics can reflect service-side timing and are not a billing or quota decision by themselves.
  • Large size or high item count is an operational signal, not proof that content is unnecessary or safe to remove.
What to do next: Sort by size, review ERROR rows, and compare the largest mailboxes with archive, retention and migration requirements before taking action.