How to install FREE Let's Encrypt certificate in Exchange Server? After configuring the internal and…
Export a list of mailboxes to CSV in Exchange
You need to export a list of mailboxes to a CSV file in Exchange Server. Such a list can be important. For example, there is a mailbox migration coming. With that list, you can get more information about the mailboxes of the users. In this article, you will learn how to do it with PowerShell.
Export a list of mailboxes to CSV through PowerShell
The information you need to export is:
- DisplayName
- SamAccountName
- PrimarySMTPAddress
Before you start the export to a CSV file, you can make use of the Out-GridView cmdlet. This cmdlet will give you the results without exporting. I recommend doing that first. Let’s see it in action.
Run Exchange Management Shell as administrator. Use the Get-Mailbox cmdlet, including the ResultSize parameter. The output will list only 10 users. Therefore, it will generate faster without a load on the server.
[PS] C:\>Get-Mailbox -ResultSize 10 | Select-Object DisplayName, SamAccountName, PrimarySmtpAddress | Out-GridView
WARNING: There are more results available than are currently displayed. To view them, increase the value for the ResultSize parameter.
You can sort the output on email address.
[PS] C:\>Get-Mailbox -ResultSize 10 | Select-Object DisplayName, SamAccountName, PrimarySmtpAddress | Sort-Object PrimarySmtpAddress | Out-GridView
WARNING: There are more results available than are currently displayed. To view them, increase the value for the ResultSize parameter.
Now that you can confirm that the information is correct. You can change the command to Resultsize Unlimited.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, SamAccountName, PrimarySmtpAddress | Sort-Object PrimarySmtpAddress | Out-GridView
If all is looking great, let’s export the information to a CSV file. First, make sure you have a folder created on your C: drive with the name output. The path in Windows Explorer should show as C:\output\.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, SamAccountName, PrimarySmtpAddress | Sort-Object PrimarySmtpAddress | Export-CSV c:\output\display_sam_smtp.csv -NoTypeInformation -Encoding UTF8
CSV file export is complete.
Result exported list of mailboxes to CSV
Go to the path c:\output\display_sam_smtp.csv.
Open the CSV file with your favorite application. For example, I opened the CSV file with Microsoft Excel.
That’s it. Export a list of mailboxes to CSV in Exchange Server completed.
Conclusion
In this article, you learned how to export a list of mailboxes to CSV in Exchange. Use the Out-GridView cmdlet before exporting it to a CSV file. Did you use the PowerShell command to export a list of mailboxes to CSV in Exchange?
Did you enjoy this article? You may also like List all SMTP addresses with PowerShell. Don’t forget to follow us and share this article.
Hola Ali como estas. Consulta que script puedo correr para listar los buzones entre determinada capacidad, ejemplo 1 GB y 1,5 GB, es para moverlos a otra base, gracias saludos desde Argentina.
Hi Sebastian,
You can use the following commands.
Get all mailboxes in the Exchange organization between 1 GB and 1.5 GB:
Move the mailboxes to another database:
Get all mailboxes in particular Exchange mailbox database between 1 Gb and 1.5 GB:
Move the mailboxes to another database:
Hi Ali,
I can’t figure out how to reuse this script to include “last login time”. It doesn’t appear this is a parameter for get-mailbox, but open to your suggestions.
Thanks
Hi Talal,
Read the article Get mailbox size of all users in Exchange with PowerShell. The mailbox’s last logon time is one of the values that the script will export.
Thank you Ali, greatly appreciate individuals like yourself who take the time to share their knowledge and skills with others.
Good Morning Ali,
Do you have a script that can export mailboxes for a specific database or just 1 mailbox eg MBexch1DB
Thanks
Sandile
Hi Sandile,
You can use the -Database parameter to filter the results by mailbox database.
Example:
Change DB01 to your mailbox database.
Read more in the article List mailboxes in Exchange database with PowerShell.
Thanks a lot, it’s so useful for me
Thanks again.
You’re welcome, Mohamed.