PowerShell Script to download Mailbox Size with Archive storage.

$Result = @()

#Get all user mailboxes

$mailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox

$totalmbx = $mailboxes.Count
$i = 0

$mailboxes | ForEach-Object {
$i++
$mbx = $_

Write-Progress -activity "Processing $mbx" -status "$i out of $totalmbx completed"

# Get primary mailbox statistics
$primaryStats = Get-MailboxStatistics $mbx.UserPrincipalName

# Get archive mailbox statistics if it exists
$archiveStats = $null
if ($mbx.ArchiveStatus -eq "Active") {
    $archiveStats = Get-MailboxStatistics $mbx.UserPrincipalName -Archive
}

$Result += New-Object -TypeName PSObject -Property $([ordered]@{
    UserName                   = $mbx.DisplayName
    UserPrincipalName          = $mbx.UserPrincipalName
    PrimaryMailboxStatus       = $primaryStats.LastLogonTime -ne $null
    PrimaryMailboxSizeInMB     = if ($primaryStats.TotalItemSize -ne $null) {
                                   [math]::Round(($primaryStats.TotalItemSize.ToString().Split('(')[1].Split(' ')[0].Replace(',', '') / 1MB), 2)
                               } else {
                                   0
                               }
    ArchiveMailboxStatus       = if ($archiveStats -ne $null) { $archiveStats.LastLogonTime -ne $null } else { $false }
    ArchiveMailboxSizeInMB     = if ($archiveStats -ne $null) {
                                   [math]::Round(($archiveStats.TotalItemSize.ToString().Split('(')[1].Split(' ')[0].Replace(',', '') / 1MB), 2)
                               } else {
                                   0
                               }
    ArchiveWarningQuota        = $mbx.ArchiveWarningQuota
    ArchiveQuota               = $mbx.ArchiveQuota
    AutoExpandingArchiveEnabled = $mbx.AutoExpandingArchiveEnabled
})

}

$Result | Export-CSV “C:\Mailbox-Status-Report_edited.csv” -NoTypeInformation

https://icloud360.in/wp-content/uploads/file-manager/Mailbox-Status-Report.ps1

Leave a Comment