465 lines
24 KiB
PowerShell
465 lines
24 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
MailboxSizeReport.ps1
|
|
|
|
.DESCRIPTION
|
|
Display or export mailbox size report and many more information for a single user or all users (wildcard support).
|
|
|
|
The script works for:
|
|
-Exchange On-Premises (Run Exchange Management Shell)
|
|
-Exchange Online (Connect to Exchange Online PowerShell)
|
|
|
|
.LINK
|
|
alitajran.com/get-mailbox-size-all-users-in-exchange-with-powershell
|
|
|
|
.NOTES
|
|
Written by: ALI TAJRAN
|
|
Website: alitajran.com
|
|
LinkedIn: linkedin.com/in/alitajran
|
|
|
|
.CHANGELOG
|
|
V1.00, 12/25/2019 - Initial version
|
|
V1.10, 03/27/2023 - Optimized layout and changes to delimiter
|
|
#>
|
|
|
|
|
|
function Convert-ToMegabytes {
|
|
param (
|
|
[string]$Value
|
|
)
|
|
|
|
$regex = "\(([\d\,]+)\sbytes\)"
|
|
if ($Value -match $regex) {
|
|
$rawValue = $Matches[1].Replace(',', '')
|
|
return $rawValue / 1024 / 1024
|
|
|
|
} else {
|
|
return $Value
|
|
|
|
}
|
|
}
|
|
|
|
Write-host "
|
|
|
|
Mailbox Size Report
|
|
----------------------------
|
|
|
|
1.Display in Exchange Management Shell
|
|
|
|
2.Export to CSV File
|
|
|
|
3.Export to CSV File (Specific to Database)
|
|
|
|
4.Enter the Mailbox Name with Wild Card (Export)
|
|
|
|
5.Enter the Mailbox Name with Wild Card (Display)
|
|
|
|
6.Export to CSV File (OFFICE 365)
|
|
|
|
7.Enter the Mailbox Name with Wild Card (Export) (OFFICE 365)"-ForeGround "Cyan"
|
|
|
|
#----------------
|
|
# Script
|
|
#----------------
|
|
|
|
Write-Host " "
|
|
|
|
$number = Read-Host "Choose The Task"
|
|
$output = @()
|
|
switch ($number) {
|
|
|
|
1 {
|
|
|
|
$AllMailbox = Get-mailbox -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
|
|
Write-Output $Userobj
|
|
|
|
}
|
|
|
|
; Break
|
|
}
|
|
|
|
2 {
|
|
$i = 0
|
|
|
|
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\Report.csv)"
|
|
|
|
$AllMailbox = Get-mailbox -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
Write-Host "Processing $($Mbx.UserPrincipalName)"
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -eq $null) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -ne $null) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota
|
|
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -eq $null)) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -ne $null)) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value $Mbx.ProhibitSendReceiveQuota
|
|
}
|
|
if ($Mbx.ArchiveName.count -eq "0") {
|
|
$ArchiveTotalItemSize = $null
|
|
$ArchiveTotalItemCount = $null
|
|
}
|
|
if ($Mbx.ArchiveName -ge "1") {
|
|
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
|
|
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
|
|
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
|
|
}
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
|
|
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
|
|
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
|
|
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses.smtpaddress -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "Database" -Value $mbx.Database
|
|
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $mbx.ServerName
|
|
if ($Stats) {
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalItemSize)
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
|
|
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalDeletedItemSize)
|
|
}
|
|
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $ProhibitSendReceiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
|
|
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
|
|
|
|
$output += $UserObj
|
|
# Update Counters and Write Progress
|
|
$i++
|
|
if ($AllMailbox.Count -ge 1) {
|
|
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100)
|
|
}
|
|
}
|
|
|
|
|
|
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ";"
|
|
|
|
; Break
|
|
}
|
|
|
|
3 {
|
|
$i = 0
|
|
|
|
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\Report.csv)"
|
|
$Database = Read-Host "Enter the DatabaseName (Eg. Database 01)"
|
|
|
|
$AllMailbox = Get-mailbox -resultsize unlimited -Database "$Database"
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -eq $null) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -ne $null) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -eq $null)) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -ne $null)) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value $Mbx.ProhibitSendReceiveQuota
|
|
}
|
|
if ($Mbx.ArchiveName.count -eq "0") {
|
|
$ArchiveTotalItemSize = $null
|
|
$ArchiveTotalItemCount = $null
|
|
}
|
|
if ($Mbx.ArchiveName -ge "1") {
|
|
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
|
|
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
|
|
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
|
|
}
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
|
|
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
|
|
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
|
|
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses.smtpaddress -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "Database" -Value $mbx.Database
|
|
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $mbx.ServerName
|
|
if ($Stats) {
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalItemSize)
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
|
|
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalDeletedItemSize)
|
|
}
|
|
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $ProhibitSendReceiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
|
|
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
|
|
|
|
$output += $UserObj
|
|
# Update Counters and Write Progress
|
|
$i++
|
|
if ($AllMailbox.Count -ge 1) {
|
|
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100)
|
|
}
|
|
}
|
|
|
|
|
|
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ";"
|
|
|
|
; Break
|
|
}
|
|
|
|
4 {
|
|
$i = 0
|
|
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\DG.csv)"
|
|
|
|
$MailboxName = Read-Host "Enter the Mailbox name or Range (Eg. Mailboxname , Mi*,*Mik)"
|
|
|
|
$AllMailbox = Get-mailbox $MailboxName -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
|
|
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -eq $null) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $true) -and (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota.value -ne $null) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value (Get-MailboxDatabase $mbx.Database).ProhibitSendReceiveQuota
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -eq $null)) {
|
|
$ProhibitSendReceiveQuota = "Unlimited"
|
|
}
|
|
if (($Mbx.UseDatabaseQuotaDefaults -eq $false) -and ($mbx.ProhibitSendReceiveQuota.value -ne $null)) {
|
|
$ProhibitSendReceiveQuota = Convert-ToMegabytes -Value $Mbx.ProhibitSendReceiveQuota
|
|
}
|
|
if ($Mbx.ArchiveName.count -eq "0") {
|
|
$ArchiveTotalItemSize = $null
|
|
$ArchiveTotalItemCount = $null
|
|
}
|
|
if ($Mbx.ArchiveName -ge "1") {
|
|
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
|
|
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
|
|
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
|
|
}
|
|
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
|
|
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
|
|
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
|
|
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses.smtpaddress -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "Database" -Value $mbx.Database
|
|
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $mbx.ServerName
|
|
if ($Stats) {
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalItemSize)
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
|
|
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize (MB)" -Value (Convert-ToMegabytes -Value $Stats.TotalDeletedItemSize)
|
|
}
|
|
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $ProhibitSendReceiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
|
|
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
|
|
|
|
$output += $UserObj
|
|
# Update Counters and Write Progress
|
|
$i++
|
|
if ($AllMailbox.Count -ge 1) {
|
|
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100)
|
|
}
|
|
}
|
|
|
|
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ";"
|
|
|
|
; Break
|
|
}
|
|
|
|
5 {
|
|
|
|
$MailboxName = Read-Host "Enter the Mailbox name or Range (Eg. Mailboxname , Mi*,*Mik)"
|
|
|
|
$AllMailbox = Get-mailbox $MailboxName -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
|
|
Write-Output $Userobj
|
|
|
|
}
|
|
|
|
; Break
|
|
}
|
|
|
|
6 {
|
|
$i = 0
|
|
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\Report.csv)"
|
|
|
|
$AllMailbox = Get-mailbox -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
if ($Mbx.ArchiveName.count -eq "0") {
|
|
$ArchiveTotalItemSize = $null
|
|
$ArchiveTotalItemCount = $null
|
|
}
|
|
if ($Mbx.ArchiveName -ge "1") {
|
|
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
|
|
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
|
|
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
|
|
}
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
|
|
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
|
|
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
|
|
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "Database" -Value $Stats.Database
|
|
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $Stats.ServerName
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
|
|
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize" -Value $Stats.TotalDeletedItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $Mbx.ProhibitSendReceiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
|
|
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
|
|
|
|
$output += $UserObj
|
|
# Update Counters and Write Progress
|
|
$i++
|
|
if ($AllMailbox.Count -ge 1) {
|
|
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100)
|
|
}
|
|
}
|
|
|
|
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ";"
|
|
|
|
; Break
|
|
}
|
|
|
|
7 {
|
|
$i = 0
|
|
$CSVfile = Read-Host "Enter the Path of CSV file (Eg. C:\DG.csv)"
|
|
|
|
$MailboxName = Read-Host "Enter the Mailbox name or Range (Eg. Mailboxname , Mi*,*Mik)"
|
|
|
|
$AllMailbox = Get-mailbox $MailboxName -resultsize unlimited
|
|
|
|
Foreach ($Mbx in $AllMailbox) {
|
|
|
|
$Stats = Get-mailboxStatistics -Identity $Mbx.distinguishedname -WarningAction SilentlyContinue
|
|
|
|
if ($Mbx.ArchiveName.count -eq "0") {
|
|
$ArchiveTotalItemSize = $null
|
|
$ArchiveTotalItemCount = $null
|
|
}
|
|
if ($Mbx.ArchiveName -ge "1") {
|
|
$MbxArchiveStats = Get-mailboxstatistics $Mbx.distinguishedname -Archive -WarningAction SilentlyContinue
|
|
$ArchiveTotalItemSize = $MbxArchiveStats.TotalItemSize
|
|
$ArchiveTotalItemCount = $MbxArchiveStats.BigFunnelMessageCount
|
|
}
|
|
|
|
$userObj = New-Object PSObject
|
|
|
|
$userObj | Add-Member NoteProperty -Name "Display Name" -Value $mbx.displayname
|
|
$userObj | Add-Member NoteProperty -Name "Alias" -Value $Mbx.Alias
|
|
$userObj | Add-Member NoteProperty -Name "SamAccountName" -Value $Mbx.SamAccountName
|
|
$userObj | Add-Member NoteProperty -Name "RecipientType" -Value $Mbx.RecipientTypeDetails
|
|
$userObj | Add-Member NoteProperty -Name "Recipient OU" -Value $Mbx.OrganizationalUnit
|
|
$userObj | Add-Member NoteProperty -Name "Primary SMTP address" -Value $Mbx.PrimarySmtpAddress
|
|
$userObj | Add-Member NoteProperty -Name "Email Addresses" -Value ($Mbx.EmailAddresses -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "Database" -Value $Stats.Database
|
|
$userObj | Add-Member NoteProperty -Name "ServerName" -Value $Stats.ServerName
|
|
$userObj | Add-Member NoteProperty -Name "TotalItemSize" -Value $Stats.TotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ItemCount" -Value $Stats.ItemCount
|
|
$userObj | Add-Member NoteProperty -Name "DeletedItemCount" -Value $Stats.DeletedItemCount
|
|
$userObj | Add-Member NoteProperty -Name "TotalDeletedItemSize" -Value $Stats.TotalDeletedItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota-In-MB" -Value $Mbx.ProhibitSendReceiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "UseDatabaseQuotaDefaults" -Value $Mbx.UseDatabaseQuotaDefaults
|
|
$userObj | Add-Member NoteProperty -Name "LastLogonTime" -Value $Stats.LastLogonTime
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveName" -Value ($Mbx.ArchiveName -join ",")
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveStatus" -Value $Mbx.ArchiveStatus
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveState" -Value $Mbx.ArchiveState
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveQuota" -Value $Mbx.ArchiveQuota
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemSize" -Value $ArchiveTotalItemSize
|
|
$userObj | Add-Member NoteProperty -Name "ArchiveTotalItemCount" -Value $ArchiveTotalItemCount
|
|
|
|
$output += $UserObj
|
|
# Update Counters and Write Progress
|
|
$i++
|
|
if ($AllMailbox.Count -ge 1) {
|
|
Write-Progress -Activity "Scanning Mailboxes . . ." -Status "Scanned: $i of $($AllMailbox.Count)" -PercentComplete ($i / $AllMailbox.Count * 100) -ErrorAction SilentlyContinue
|
|
}
|
|
}
|
|
|
|
$output | Export-csv -Path $CSVfile -NoTypeInformation -Encoding UTF8 #-Delimiter ";"
|
|
|
|
; Break
|
|
}
|
|
|
|
Default { Write-Host "No matches found , Enter Options 1 or 2" -ForeGround "red" }
|
|
|
|
} |