<#-------------------This Script Queries Exchange 2010 Mailbox Databases and Gathers Information about Database,Server,EDB File Size,WhiteSpace,ConnectedMailboxes,DisconnectedMailboxes,Mailbox Size, Dumpster Size #>
$Global:Report = @()
$Global:DatabaseInfo = @()
#---------------------
# Vars
#---------------------
$Global:Today = Get-Date -format G
$Global:Body = ""
$Global:Subject = "Exchange 2010 - Mailbox Database Statistics - $Global:Today"
$Global:From = "MailboxStatistics@domain.com"
$Global:Recipient = "Pavan.Maganti@excollab.com"
$Global:SMTPserver = "EXHUB.EXCOLLAB.COM"
$CRLF = "<p><o:p> </o:p></p>"
#--------------------------------------------------------------
# Utility Routines
#--------------------------------------------------------------
#---------------------------------------
# HTML Header
#---------------------------------------
Function Style ($Color)
{
$h = "<style>"
$h = $h + "BODY{background-color:white; font-family: Arial; font-size: 10pt;}"
$h = $h + "TABLE{border- 1px;border-style: solid;border-color: black;border-collapse: collapse; text-align: center;}"
$h = $h + "TH{border- 1px;padding: 0px;border-style: solid;border-color: black;background-color: $Color}"
$h = $h + "TD{border- 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"
$h = $h + "</style>"
return $h
}
Function SendMail ()
{
"Sending Message To $Global:Recipient"
send-mailmessage -Subject $Global:Subject -To $Global:Recipient -From $Global:From -Body $global:body -SmtpServer $Global:SMTPserver -bodyashtml
}
Function GetDatabaseStatistics($List)
{
"+++Processing the DC1 Mailbox Databases"
foreach($Database in $List)
{
if(!$List)
{
"+++No Objects to Process"
Continue
}
$DBComb = ""|Select Database,Server,'Size (GB)','WhiteSpace (GB)','Total Items(GB)','DB Dumpster(GB)',ActiveMBX,DisconnectedMBX
$DBName = $Database.Identity
$DBComb.Server = [String]$Database.MountedOnServer.Split(".")[0]
$DBComb.Database = $DBName
$DBComb.'Size (GB)' = $("{0:N2}" -f ($Database.DatabaseSize.ToBytes()/1GB))
$DBComb.'WhiteSpace (GB)' = $("{0:N2}" -f ($Database.AvailableNewMailboxSpace.ToBytes()/1GB))
$ItemSum = (Get-Mailboxstatistics -Database $DBName | %{$_.TotalItemSize.Value.ToBytes()} | Measure-Object -sum).sum
$ItemSum = $("{0:N2}" -f ($ItemSum/1GB))
$DeletedSum = (Get-Mailboxstatistics -Database $DBName | %{$_.TotalDeletedItemSize.Value.ToBytes()} | Measure-Object -sum).sum
$DeletedSum = $("{0:N2}" -f ($DeletedSum/1GB))
$DBComb.'Total Items(GB)' = $ItemSum
$DBComb.'DB Dumpster(GB)' = $DeletedSum
$ActiveMBXCount = Get-MailboxStatistics -Database $DBName |Where {$_.DisconnectDate -eq $Null -and $_.ObjectClass -eq 'Mailbox'} | Measure-Object
$DisconnectedMBXCount = Get-MailboxStatistics -Database $DBName |Where {$_.DisconnectDate -ne $Null -and $_.ObjectClass -eq 'Mailbox'} | Measure-Object
$DBComb.ActiveMBX = $ActiveMBXCount.Count
$DBComb.DisconnectedMBX = $DisconnectedMBXCount.Count
$Global:DatabaseInfo += $DBComb
}
}
Function Report()
{
$h1 = Style white
$h2 = Style green
$h3 = Style red
$h4 = Style yellow
$Ha = $Global:DatabaseInfo | ConvertTo-HTML -head $h1 -body "<H3>Mailbox Database Statistics</H3>"
$Global:Body = ($CRLF + $Ha) | Out-String
SendMail
}
#------------------#
# MAIN #
#------------------#
"+++Getting List of Exchange 2010 Mailbox Databases "
$DatabasList = Get-MailboxDatabase -Status | Where {$_.ExchangeVersion -eq "0.10 (14.0.100.0)"} | Sort identity | Select Identity,AvailableNewMailboxSpace,DatabaseSize,MountedOnServer,EDBFilePath
GetDatabaseStatistics $DatabasList
"+++Generating Html Report..."
Report
Exchange 2010 邮箱数据库大小
Exchange 2010 邮箱数据库统计信息处理数据库大小问题
1.Exchange数据库 EDBFile 大小
2.数据库空白
3.项目总大小 (不包括垃圾站的邮箱大小)
4.垃圾站大小 (邮箱垃圾站大小)
5.主动邮箱数
6.断开连接的邮箱数
此脚本有助于查询 Exchange 2010 邮箱数据库,并生成一份报告和提供上述的信息在表中嵌入的电子邮件。