In Exchange 2010 a personal archive feature came available. The personal archive is an additional mailbox that’s enabled for a user, which you can store on a separate server (since SP1) with less expensive storage hardware. The Personal Archive must eliminate the need of pst files in your organization. With the release of Service Pack 1 some nice new features like importing and exporting PST files are added. The personal archive can be accessed via Outlook 2010 or Outlook Web App.

In this blog I will write about the archive related Exchange Management Shell cmdlets. In one of the next blogs I will look into the retention and archive policies and the Exchange Management Shell cmdlets for these policies.

How to enable a Personal Archive

To enable an archive for one user you can use the following enable-mailbox cmdlet.

Enable-Mailbox –identity jjohnson -Archive

How to disable a Personal Archive

To disable an archive for one user you can use the following disable-mailbox cmdlet.

Disable-Mailbox -Identity jjohnson –Archive

How to reconnect a Personal Archive

When you disabled a Personal Archive, the archive is depending of the mailbox retention time available as a disconnected mailbox. With the Exchange Management Shell you are able to reconnect the archive with the user.

First you need to identify the archive, with the following command line;

Get-MailboxDatabase “Archive Database” | Get-MailboxStatistics | Where {($_.DisconnectDate –ne $null) -and ($_.IsArchiveMailbox -eq $true)} |FL

A part of the result can be:

DisplayName : Online Archive – John Johnson
Database : Archive Database
MailboxGuid : e3fa200d-38ab-4744-950d-f169f9b3b785
ServerName : ArchiveSRV01
DatabaseName : Archive Database
IsQuarantined : False
IsArchiveMailbox : True
Identity : e3fa200d-38ab-4744-950d-f169f9b3b785
IsValid : True

 With the MailboxGuid value you are able to identify the archive which needs to be reconnected.

 Connect-Mailbox -Identity “e3fa200d-38ab-4744-950d-f169f9b3b785” -Archive -User jjohnson -Database “Archive Database”

How to move a Personal Archive

To move an archive for one user from the production Mailbox Database to an Archive Database, you can use the following command line.

New-MoveRequest -identity jjohnson -ArchiveTargetDatabase ‘Archive Database’ -ArchiveOnly

How to import PST files into a Personal Archive?

Before you are able to use the New-MailboxImportRequest cmdlet you need to assign the “Mailbox Import Export” role to the user used for importing the pst files. See my earlier blog about missing commandlets.

To import the archive2010.pst into the archive of user jjohnson you can use the following command line in the Exchange Management Shell:

New-MailboxImportRequest -Mailbox jjonhson -IsArchive -FilePath d:\archives\jjonhson\archive2010.pst

If you need to import a bunch of archives located in one directory, you can use the following command line in the Exchange Management Shell:

Dir d:\archives\*.pst | %{ New-MailboxImportRequest -Name Archive2PST -BatchName Archive2PST -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder SubFolderInPrimary}

To be able to use the command line, the pst files must have the same name as the users aliases.

How to export PST files from a Personal Archive?

Before you are able to use the New-MailboxExportRequest cmdlet you need to assign the “Mailbox Import Export” role to the user used for exporting the pst files.

To export the archive of user jjohnson to archive2010.pst  you can use the following command line in the Exchange Management Shell:

New-MailboxExportRequest -Mailbox jjohnson -FilePath “d:\archives\jjonhson\archive2010.pst” –IsArchive

If you want to export all the sent items from the archive of the user jjohnson you can use the following comma line in the Exchange Management Shell:

New-MailboxExportRequest -Mailbox jjohnson -IncludeFolders “#Sent Items#” -FilePath d:\jjohnson\sentitems.pst

How to set an archive quota on all users with a Personal Archive in the Exchange 2010 SP1 organization?

If you want to set an archive quota of 20 GB per archive and a warning threshold of 19GB on all you archives, this can be done by combining the get-mailbox cmdlet with the set-mailbox cmdlet:

Get-Mailbox -resultsize unlimited | where {$_.ArchiveDatabase -ne $null} | set-mailbox -Archive Quota 20GB -ArchiveWarningQuota 19GB

How do I get all the archive settings from a user?

If you want to see all archive related settings of a mailbox you can use the following command line:

Get-Mailbox -Identity jjohnson | fl *archive*

The result will be like this:

ArchiveDatabase : Archive Database
ArchiveGuid  : 4cd70e8a-c32b-4b79-9afd-0241407e2307
ArchiveName  : {Personal Archive – John Johnson}
ArchiveQuota  : 2 GB (2,147,483,648 bytes)
ArchiveWarningQuota  : 1.855 GB (1,992,294,400 bytes)
ArchiveDomain   :
ArchiveStatus  : None

How do I report statistics about a user’s Personal Archive?

With the Exchange Management Shell you can report the statistics of a user’s Personal Archive, you are able to report information like ItemCount, LastLoggedOnUserAccount, LastLogoffTime, LastLogonTime, StorageLimitStatus, TotalDeletedItemSize, TotalItemSize, MailboxTableIdentifier and Database ServerName

Get-MailboxStatistics -Identity jjohnson -Archive |fl

 If you want to report information about all folders in a Personal Archive you can use the following command line;

 Get-MailboxFolderStatistics -Identity jjohnson -Archive

With the FolderScope parameter you can report the statistics for one or more folders in the Personal Archive.

Get-MailboxFolderStatistics -Identity jjohnson -Archive -FolderScope inbox

Comments