$exchangeservers = Get-ExchangeServer where-object {$_.Name -imatch "CCR" } Sort Name
$AllServers = @()
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$Drive = $edbfilepath.DriveName
$DiskUsage = Get-WmiObject win32_logicaldisk -computerName $Server where-Object {$_.DeviceID -match $Drive}
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$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:n2}" -f ($dbsize.Length/1024KB))
$ReturnedObj Add-Member NoteProperty -Name "Mailbox Count" -Value $mailboxcount.count
$ReturnedObj Add-Member NoteProperty -Name "Drive" -Value $Drive
$ReturnedObj Add-Member NoteProperty -Name "Disk Space (MB)" -Value ("{0:n0}" -f ($DiskUsage.Size/1024KB))
$ReturnedObj Add-Member NoteProperty -Name "Free Space (MB)" -Value ("{0:n0}" -f ($DiskUsage.FreeSpace/1024KB))
[float]$tempfloat = ($DiskUsage.FreeSpace/1000000)/($DiskUsage.Size/1000000)
$tempPercent = [math]::round(($tempfloat * 100),2)
$ReturnedObj Add-Member NoteProperty -Name "% Free" -Value $tempPercent
$AllServers += $ReturnedObj
}
}
$AllServers export-csv c:\DatabaseSize_MailBoxCount.csv -notype –force