Exchange Server 2007, 2010
2010. 01. 15.
안혁
http://hyok.kr



Exchange 2007 이상에서는 Powershell을 이용하여 사서함 사용량을 쉽게 알 수 있습니다.

[code]
Get-MailboxStatistics | ft DisplayName, TotalItemSize
[/code]

DisplayName           TotalItemSize
-----------           -------------
홍길동                904B
왕서방                4770B
나사장                199927050B


일정 용량 이상 사용자를 알고 싶은 경우도 있을 겁니다.

[code]
Get-MailboxStatistics | Where-Object { $_.TotalItemSize -gt 1024000 } | ft DisplayName, TotalItemSize
[/code]

조금 더 생각해보면 현재 사서함의 평균 사용량도 알아볼 수 있겠지요? 용량을 모두 더하고 수 만큼 나누면 되니 어렵지 않겠습니다.

[code]
#평균 사용량 계산
$result = Get-MailboxStatistics |  Where-Object {$_.objectclass -eq "Mailbox"} #사서함 정보 목록
$total = $null #이전 작업 결과가 들어 있으면 의도치 않은 결과 출력됨
$result | ForEach-Object { $total += $_.TotalItemSize } #사서함 용량의 합
$average = $total / $result.Count #사서함 평균 사용량
 
#결과 처리
$average.Value.ToGB() #용량을 GB로 가져옴
$average.Value.ToKB() #용량을 KB로 가져옴
$average.Value.ToBytes() #용량을 Byte로 가져옴
[/code]

Get-MailboxStatistics을 실행하면 사용자 사서함 이외에 정보도 출력되므로 조건을 걸어 ObjectClass가 MailBox인 것만 가져옵니다. 각각의 TotalItemSize를 합하고 총 개수로 나눕니다. 여기서 나누는 수는 $result의 개수인데요. 이는 사용된 적이 없는 사서함을 포함하지는 않습니다. (유령회원은 회원일까요? 아닐까요?) 그런 것과 상관 없이 모든 사서함 수를 기준으로 하고 싶다면 Get-Mailbox을 활용하면 되겠습니다.

[code]
$average = $total / (Get-Mailbox).Count
[/code]

Posted by 안혁 windfruit

댓글을 달아 주세요