728x90

Get-MailboxStatistics cmdlet을 이용하여  Exchange 사서함 사용량 체크 후 메일로 발송 하는 방법에 대하여 알아 보도록 하겠습니다.

아래 내용은 Get-MailboxStatistics cmdlet을 이용하여 각각의 사서함의 사용량을 체크 후 CSV파일로 저장을 하여 저장된 파일을 SMTP를 사용하여 메일 서버관리자 또는 사용량의 관리가 필요한 사람에게 메일을 발송하는 스크립입니다.

#파일 저장시 파일 이름에 날짜를 찍기 위한 변수  
$date = get-date -Format yyyy-MM-dd
Get-MailboxStatistics -database "체크할데이터베이스" | ft displayname, totalitemsize, itemcount | Out-File -FilePath c:\mailbox\mailbox_$date.csv
$FromAddress = "발송자의메일주소"
$ToAddress = "받는사람의메일주소"
$MessageSubject = "$date Exchange2010 사서함 사용량 입니다."
$MessageBody = "$date Exchange2010 사서함 사용량 입니다. "
$SendingServer = "보내는메일서버주소"$SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress,
$MessageSubject, $MessageBody
$i = "get-date"
$Attachment = New-Object Net.Mail.Attachment("c:\mailbox\mailbox_$date.csv")
$SMTPMessage.Attachments.Add($Attachment)$SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
$SMTPClient.Send($SMTPMessage)

지정한 관리자의 메일로 사용량이 나와있는 CSV파일이 첨부되어 발송된 부분의 확인이 가능합니다.



해당 스크립트의 경우 Exchange powershell을 이용하여 직접 실행 및 아래와 같이 Bat파일로 해당 스크립트를 호출하여 예약된 작업으로 특정 시간에 실행이 되도록 실행이 가능 합니다.

PowerShell.exe -command ". 'c:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\mail-out.ps1"


여기까지 Exchange 사서함 사용량 메일로 발송하는 방법에 대하여 알아 보았습니다.

728x90
728x90

1.) Get-MailboxFolderStatistics -Identity "User A" | fl Name, ItemsInFolder, FolderSize

2.) Get-Mailbox | Get-MailboxStatistics | fl DisplayName, ItemCount, TotalItemSize

728x90

+ Recent posts