Looking for a script which can generate a mailbox report on Exchange Server 2010 and Exchange Server 2013, this script will surely help you to generate a Mailbox report and the report will be send as email.
$ErrorActionPreference = "SilentlyContinue" $WarningPreference = "SilentlyContinue" $ToAddress = "rajkumar.mcitp@outlook.com" $FromAddress = "Reporting Email Address" $Body = "Please find the attached Mailbox Stats report for MRC" $MailboxUsers = Get-Mailbox -Resultsize Unlimited | sort displayname $Output=@(); foreach ($user in $MailboxUsers) { $Name = $user.Alias $MBsize = Get-MailboxStatistics $Name $archive = Get-Mailboxstatistics $name -archive $Select = New-Object Object; # Selecting information to the object $Select | Add-Member NoteProperty "Display Name" $user.name; $Select | Add-Member NoteProperty Alias $user.alias; $Select | Add-Member NoteProperty "Primary SMTP Address" $user.PrimarySMTPAddress; $Select | Add-Member NoteProperty "Recipient Type" $user.recipienttypedetails; $Select | Add-Member NoteProperty "Use DB Quota Defaults" $user.UseDatabaseQuotaDefaults; $Select | Add-Member NoteProperty "Prohibit Send At" $user.ProhibitSendQuota: $Select | Add-Member NoteProperty "Prohibit Send\Receive At" $user.ProhibitSendReceiveQuota; $Select | Add-Member NoteProperty "Database" $MBsize.Database; $Select | Add-Member NoteProperty "Server Name" $MBsize.ServerName; $Select | Add-Member NoteProperty "Server Name" $MBsize.MailboxGuid; $Select | Add-Member NoteProperty "Mailbox Size" $MBsize.TotalItemSize; $Select | Add-Member NoteProperty "Item Count" $MBsize.ItemCount; $Select | Add-Member NoteProperty "Last Accessed Time" $MBsize.LastLogonTime; $Select | Add-Member NoteProperty "Last Logon Account" $MBsize.LastLoggedOnUserAccount; $Select | Add-Member NoteProperty "Storage Limit Status" $MBsize.StorageLimitStatus; $Select | Add-Member NoteProperty "Deleted Item Count" $MBsize.DeletedItemCount; $Select | Add-Member NoteProperty "Use Database Quota Defaults" $user.WhenMailboxCreated; # Add the object to our array of output objects $Output += $Select; } $Output | Export-CSV -Path "C:\Mailboxreport.csv" -NoTypeInformation $attachments = "C:\Mailboxreport.csv" send-mailmessage -to $ToAddress -from $FromAddress -subject "Mailbox Reports" -smtpserver exchangeserver.chennai.com -attachments $attachments -body $body
This comment has been removed by the author.
ReplyDeleteAwesome Script! Exactly what I was looking for, thanks a million!
ReplyDeleteNice PowerShell script, it helps to generate exchange mailbox size report but I tried this exchange mailbox size reporting tool from http://www.blog.mozesoft.com/how-to-generate-the-exchange-mailbox-size-report/ which helps to track and generate email flow reports which are based on sender, receivers, email subject, user, date wise and size wise on multiple server.
ReplyDelete