$exchangeservers = Get-MailboxServer
#Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
$Jumbo = 1024 * 1024
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -Status -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$DiskObj = get-WmiObject Win32_LogicalDisk -computerName $server | Where-Object { $_.DriveType -eq 3 -and $_.DeviceID -ieq $objItem.EdbFilePath.DriveName}
$FreeOnStorage = [int]($DiskObj.freespace / $Jumbo)
$FreeOnStorageProc = [float](($DiskObj.freespace /$Jumbo) / ($DiskObj.size / $Jumbo))
$start = $path.LastIndexOf('\')
$dbpath = $path.Substring($start +1).remove($path.Substring($start +1).length -4)
$mailboxpath = "$server\$dbpath"
$mailboxcount = Get-MailboxStatistics -database "$mailboxpath" |measure-object
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0}" -f ($dbsize.Length/1024KB))
$ReturnedObj | Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count
$ReturnedObj | Add-Member NoteProperty -Name "LastFullBackup" -Value $objItem.LastFullBackup
$ReturnedObj | Add-Member NoteProperty -Name "LastIncrementalBackup" -Value $objItem.LastIncrementalBackup
$ReturnedObj | Add-Member NoteProperty -Name "BackupInProgess" -Value $objItem.BackupInProgess
$ReturnedObj | Add-Member NoteProperty -Name "Mounted" -Value $objItem.Mounted
$ReturnedObj | Add-Member NoteProperty -Name "IssueWarningQuota" -Value $objItem.IssueWarningQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendQuota" -Value $objItem.ProhibitSendQuota
$ReturnedObj | Add-Member NoteProperty -Name "ProhibitSendReceiveQuota" -Value $objItem.ProhibitSendReceiveQuota
$ReturnedObj | Add-Member NoteProperty -Name "MailboxRetention" -Value $objItem.MailboxRetention
$ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorage" -Value $FreeOnStorage
$ReturnedObj | Add-Member NoteProperty -Name "FreeOnStorageProc" -Value $FreeOnStorageProc
$AllServers += $ReturnedObj
}
}
$AllServers | ft -AutoSize