Export multiple mailboxes with a powershell script

Need to take a copy of multiple mailboxes? I’ve had to do this in the past for various reasons such as audit/investigations etc. You’ll need to create a .csv file with the list of mailboxes you want to export. Then save the script below in a .ps1 file and store it in the same location as the .csv. You can then simply open Powershell and execute the script.

$Date = Get-Date -format “yyyyMMdd”

foreach ($user in (Import-CSV “export-mailboxusers.csv”)) { Export-Mailbox “$($user.Username)” -PSTFolderPath “M:\MailboxBackups\$($user.Username)_$($Date)_Mailbox.pst” -Confirm:$false }

This will work through the csv file and export the mailbox to the path specified (M:\Mailboxbackups in this example). The name of the file is formed from the mailbox name, date and the word mailbox i.e. Peter Egerton_20110802_Mailbox.pst. The date format can be amended as required in the first line.


List all your smtp addresses from powershell

Another one of those things that you might use once in a blue moon. I had to retrieve a list of all smtp addresses from our Exchange 2007 environment for validation. We had multiple smtp addresses for each recipient so this could have been quite a daunting task but is actually straight forward. Here’s the powershell…

Get-Mailbox | select -expand EmailAddresses | %{$_.SmtpAddress} > emailaddresses.csv

Simple really!

List all your mailbox sizes with powershell

This is one of those things that you may not use often but you are almost guaranteed to need at some point. Below is an easy powershell script/command for you to use which will export a list of all your mailboxes and their sizes, into a CSV file.

Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount > MailboxSizes.CSV

This is sorted by largest mailbox first and includes the name of the mailbox, the size of the mailbox (in MB) and the number of items in each mailbox.