1. 程式人生 > >獲取Exchange中所以數據庫名稱-數據庫EDB大小-用戶數量

獲取Exchange中所以數據庫名稱-數據庫EDB大小-用戶數量

獲取exchange中所以數據庫名稱-數據庫edb大小-用戶數量

在客戶環境梳理架構發現,有一些exchange 2013後端服務器負載很高,一部分原因是數據庫內用戶的活躍度很高,郵箱使用率很高,另部分原因是版本為CU10內容索引的noderunner服務會占用比較大的開銷,想進行一些優化,將一些負載較高的BE後端數據庫用戶遷移到其他負載較低的後端BE去,但是怎麽遷移,遷移到哪一個負載低的數據庫就比較尷尬,經過各種谷歌搜索整理了一個腳本可以幫助做這個事。

當時exchange建設時為每個數據庫都分布了大概500個用戶,但每一個郵箱用戶的使用情況都是不一樣的,管理員也沒有辦法進行控制,因為是用戶層面的行為,就會造成每個BE後端服務器的負載不均衡。

通過一個powershell腳本能夠獲得到每個數據庫的名字、大小以及用戶數量並且直接輸出成csv比較友好的界面,可以幫助我們進行數據性能的優化

將腳本分享出來希望大家有用,適用於exchange 2013環境,其他版本請自行測試

輸出信息如下:

技術分享





Add-PSSnapin microsoft.exchange*

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

#$MailboxDatabases=Get-MailboxDatabase -Status | select Name,DatabaseSize

$dbs = Get-MailboxDatabase -Status| Where {$_.Recovery -ne $true}

$dbs = $dbs | sort-object name

$output=‘C:\databaseSize.csv‘

$title="databasename,Servername,databasesize,count"

$title>>$output

foreach ($db in $dbs)

{

#Get the mailbox count for the database

$mailboxes = Get-Mailbox -database $db -IgnoreDefaultScope -Resultsize Unlimited -erroraction silentlycontinue

$mbcount = $mailboxes.count


$dbsize=$db| select Server,DatabaseSize

#$databaseSize=$dbsize.DatabaseSize.ToString().Split("GB")[0]

$databaseSize=$dbsize.DatabaseSize.ToBytes()/1024/1024/1024

$message="$($db.name),$($dbsize.Server),$databaseSize,$($mailboxes.count)"

$message>>$output

}


本文出自 “追夢赤子心” 博客,請務必保留此出處http://zmczx.blog.51cto.com/7689019/1952956

獲取Exchange中所以數據庫名稱-數據庫EDB大小-用戶數量