Date created: Friday, August 27, 2010 7:29:05 PM. Last modified: Thursday, December 13, 2012 11:41:20 AM

Export to PST

In their infinite wisdom M$ have made the export-mailbox command under Exchange 2007 only export to PSTs when used on a 32-bit machine. This means no servers can have this tasks automated if they are running 64-bit windows, which they surely would be if you have more than 7 mailboxes and need more than a few gigs of RAM. Also the machine running the export-mailbox command requires Outlook 2003 (or newer) so you need to use up another Office license. The only way I know this can be automated then is by either having an "always on" 32-bit machine with Outlook and the Exchange Management Console installed or by purchasing an XP/Vista-32/7-32 etc license and running a VM.

Here I have exported mailboxes in groups of users in Active Directory, per Organisational Unit which can be done with:

Get-User -OrganizationalUnit "Organisational Unit A" | Export-Mailbox -PSTFolderPath "\\fileserver\Organisation Unit A" -Confirm:$false

Be careful with the confirm:$false part, this will automatically overwirte any existing PSTs for the current user but adversly you haven't got to be at the console to confirm every mailbox export. Also note this command will recurse through an OU so you can use it at a high level within the Active Directory structure ending up with a small power shell script only 5 or 6 lines long that exports all mailboxes to PSTs for the whole company (which could be a bad idea if you leave thousands of mailboxes exporting overnight by accident!).

A more specific alternative would be:

Get-User -OrganizationalUnit "OU=Finance,OU=Staff,OU=Domain Users,DC=xyzcorp,DC=local" -RecipientTypeDetails UserMailbox |  Export-Mailbox -PSTFolderPath "X:\PSTBackups\staff\finance" -Confirm:$false