It’s been a long time since I’ve updated Get-MailboxReport.ps1, a PowerShell script for generating reports about Exchange Server mailboxes statistics and other useful information.

Recently some folks have been asking for extra features to be added, so I took the opportunity to make some other minor enhancements at the same time.

The list of changes for V1.03 are:

  • Added email functionality. You can now send the CSV file as an email attachment. The email message will also include the top mailboxes by size.
  • Added some extra attributes to the report, such as mailbox quota settings.
  • Script can now be run from a regular PowerShell session and will automatically load the Exchange snap-in, which simplifies running the script from Task Scheduler.

Download details are available here.

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for


  1. sp

    Is there any command to know when the mailbox size is last updated

  2. Jimmy Wang

    can you run this script on multiple mailbox server switch -MailServer ?

  3. Jimmy Wang

    Hi, your script is fantastic. I would like to modify some condition.

    I’m looking for a match query. Where would I insert match and what is correct string ?

    | ? {$_.ManagedFolderMailboxPolicy -match “Exchange2007-Unlimited”}

    1. Avatar photo
      Paul Cunningham

      You’re trying to modify the results that Get-Mailbox returns? Just look for Get-Mailbox in the script and modify that line.

  4. FMustafa

    Hi Paul, Very useful script. in case this is required for Multiple domains Forest Exchange Setup, then below is the lines to replace Line 273 in ver 1.0.3:

    $LocalSite = (Get-ADDomainController -Discover).Site
    $NewTargetGC = Get-ADDomainController -Discover -Service 6 -SiteName $LocalSite
    $NewTargetGCHostName = $NewTargetGC.HostName
    $LocalGC = “$NewTargetGCHostName” + “:3268”

    $aduser = Get-ADUser $mb.samaccountname -Server $LocalGC -Properties Enabled,AccountExpirationDate

    Hope it helps.

Leave a Reply