Get-ExchangeMailboxReport
Exchange: Generates a detailed audit report of all mailboxes
#Requires -Version 5.1
[CmdletBinding()]
Param (
[switch]$EnabledOnly,
[switch]$ExcludeResources
)
Process {
try {
$mailboxes = Get-Mailbox -ResultSize Unlimited -ErrorAction Stop
if ($EnabledOnly.IsPresent) {
$mailboxes = $mailboxes | Where-Object { $_.IsMailboxEnabled -eq $true }
}
if ($ExcludeResources.IsPresent) {
$mailboxes = $mailboxes | Where-Object { $_.IsResource -eq $false }
}
$results = foreach ($mb in $mailboxes) {
[PSCustomObject]@{
DisplayName = $mb.DisplayName
Alias = $mb.Alias
PrimarySmtpAddress = $mb.PrimarySmtpAddress
RecipientTypeDetails = $mb.RecipientTypeDetails
Database = $mb.Database.Name
IsMailboxEnabled = $mb.IsMailboxEnabled
IsResource = $mb.IsResource
ArchiveStatus = $mb.ArchiveStatus
LastModified = $mb.WhenChanged
}
}
Write-Output ($results | Sort-Object DisplayName)
}
catch {
throw
}
}Off
If set, includes only mailboxes where IsMailboxEnabled is true.
Off
If set, excludes resource mailboxes (Rooms and Equipment) from the report.