Skip to content

Get-ExchangeDatabaseReport

Exchange: Generates a detailed audit report of Mailbox Databases

#Requires -Version 5.1

[CmdletBinding()]
Param ()

Process {
    try {
        $databases = Get-MailboxDatabase -Status -ErrorAction Stop

        $results = foreach ($db in $databases) {
            [PSCustomObject]@{
                Name                        = $db.Name
                Server                      = $db.Server.Name
                DatabaseSize                = if ($db.DatabaseSize) { $db.DatabaseSize.ToGB() } else { "N/A" }
                AvailableNewMailboxSpace    = if ($db.AvailableNewMailboxSpace) { $db.AvailableNewMailboxSpace.ToGB() } else { "N/A" }
                ProhibitSendReceiveQuota    = $db.ProhibitSendReceiveQuota
                ProhibitSendQuota           = $db.ProhibitSendQuota
                IssueWarningQuota           = $db.IssueWarningQuota
                IndexEnabled                = $db.IndexEnabled
                Mounted                     = $db.Mounted
                DistinguishedName           = $db.DistinguishedName
                LastModified                = $db.WhenChanged
            }
        }

        Write-Output ($results | Sort-Object Name)
    }
    catch {
        throw
    }
}

This script has no configurable parameters.

An interactive directory of PowerShell scripts.