And the award goes to ..


Hurray, look what I found in my Inbox today ..

Congratulations! We’re pleased to inform you that your contributions to Microsoft online technical communities have been recognized with the Microsoft Community Contributor Award.

The Microsoft Community Contributor Award is reserved for participants who have made notable contributions in Microsoft online community forums such as TechNet, MSDN and Answers. The value of these resources is greatly enhanced by participants like you, who voluntarily contribute your time and energy to improve the online community experience for others.

and here’s the logo that goes with it:

 

Restoring a personal archive from backup


Many articles discuss recovering single or multiple mailboxes from backup, but little on how to recover those personal archives (and no, recovering the mailbox doesn’t recover the personal archive, depending on your backup solution of course). I’d like to show you how to restore a personal archive using standard Exchange 2010 SP1 functionality and a backup, meaning we won’t use the dumpster and we won’t be using a lagged copy.

For our example we’ll need an archive-enabled mailbox:

image

Disaster strikes and you need to perform a full recovery of the personal archive. For completeness I’ll describe shortly how to restore a backup and create and mount the recovery database.

First, restore the database and logs from backup (you do have a backup, right?) and use an alternative location to restore the files. In this example, the effective restoration path for the DB will be called <RestoreDBPath>, the path for the logs will be <RestoreLogsPath>.

Second, create a recovery database using the following cmdlet:

New-MailboxDatabase –Recovery –Name RecoveryDB –Server <ServerID> –EdbFilePath <RecoveryDBPath> –LogFolder <RecoveryLogsPath>

Before you can mount the recovery database it might be required to bring it in a clean state. This means all logs need to be replayed, for which we use ESEUTIL in recovery mode (/r). The command to use is something as follows, where <PREFIX> is the prefix used by the database, e.g. ‘”E00”:

ESEUTIL /r <PREFIX>  /l “<RecoveryLogsPath>” /d “<RecoveryDBPath>”

image

Next, mount the database using the Exchange Management Shell as follows:

Mount-MailboxDatabase RecoveryDB

Now it’s time to restore the personal archive, for which we’ll use the New-MailboxRestoreRequest cmdlet. We’ll use the TargetIsArchive parameter to specify that the restored content should be stored in the specified mailbox’s associated personal archive. Now the trick is to specify the ArchiveGuid as SourceStoreMailbox instead of the ID (yes, having a SourceIsArchive option in the future would be nice, so we don’t need to fetch the mailbox’ ArchiveGuid first). Given this information, use the following New-MailboxRestoreRequest cmdlet to restore UserID’s personal archive:

Get-Mailbox <UserID> | % { New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox $_.ArchiveGuid -TargetMailbox $_.Identity -TargetIsArchive }

image

This will fetch UserID’s mailbox first and pass it to the New-MailboxRestoreRequest cmdlet using the required parameters. Note that, unlike Restore-Mailbox, you can’t filter on subject, timeframe, etc. You can however optionally specify a TargetFolder to restore content in a separate folder (otherwise content will be merged, like you may expect).

The restore request is queued and you can monitor progress using Get-MailboxRestoreRequest. When the restore has finished successfully, the status will be set to Completed.

image

Now let’s take a look at the mailbox’ personal archive again:

image

When you verified everything is restored, you can remove the completed restore request using Get-MailboxRestoreRequest. For example, to remove all completed restore requests in conjunction with Remove-RestoreRequest cmdlet use the following:

Get-MailboxRestoreRequest | where { $_.Status -eq “Completed”} | Remove-MailboxRestoreRequest –Confirm:$false

The above procedure is great for restoring a single personal archive, but you can also use it to recover multiple mailboxes by passing a collection of mailboxes to New-MailboxRestoreRequest like shown above, e.g.

Get-Mailbox –Database <DatabaseID> | where {$_.Name –like “p*”} |  % { New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox $_.ArchiveGuid -TargetMailbox $_.Identity -TargetIsArchive }

This will select all mailboxes on a single database (which makes sense since the recovery database will only contain the backup of a single database) and filter the selection on users with a Displayname starting with a “p”. Those users’ personal archive will be restored using RecoveryDB.

Some 2010 Statistics


First of all I’d like to wish all my readers a happy new year and all the best for 2011.

I’d like to share with you some statistics of 2010:

Top 5 posts all time:

Outlook 2007 hotfix for Exchange 2010 Personal Archive support


Update: After fixing some issues (see here) the Outlook team re-released hotfix KB2412171 and made it available for direct download here or you can get it through Windows Update.

It seems the Office 2007 Cumulative Update for December 2010 (KB2479671) will contain support for the long awaited support for Exchange 2010 Personal Archives in Outlook 2007. Note that support is limited as not all functionality found in Outlook 2010 is present, but it is usable from a customer perspective.

After applying the Outlook 2007 hotfix (SP2 is a prerequisite), archive-enabled users can do the following:

  • Access and move messages to or from their personal archive;
  • Mailboxes for which you have full access permissions will be automatically added to your Outlook view (known as auto mapping of shared mailboxes) inspecting the msExchDelegateListLink attribute (more info on this at Steve Goodman’s blog here);
  • If you have full access permissions to an archive-enabled mailbox, that archive will be accessible and automatically displayed as well.
    In the screenshot below you’ll the the user’s mailbox (Francis Blake), his Personal Archive and he has full access permissions to Philip Mortimer’s mailbox, who is also archive-enabled:

image

Unfortunately, there are also a few things not implemented, e.g.

  • No support for archiving policies, meaning users won’t be able to override centrally configured retention and archiving policy settings using personal tags in Outlook. More info on archiving policies and personal tags here;
  • Not integral searches, meaning you need to search the mailbox or the personal archive seperately. Searching “all mail items” will not retrieve results from the personal archive, as shown in the screenshot below:

image

It is unknown if these omissions are going to be introduced in a later hotfix, as the initial hotfix for personal archives in Outlook 2007 was set for Q1/Q2 2011.

Be advised that this hotfix will enable personal archive functionality for the following product versions only:

  • Office Ultimate (Retail)
  • Office ProPlus (Volume License)
  • Office Enterprise (Volume License)
  • Outlook Standalone (Retail or Volume License)

Note that the Outlook 2007 update for archive support is still not mentioned on the cumulative update page as the cumulative update package has yet to be released. However, the KB article has been published (KB2458611). You can request and retrieve the individual hotfix here.

Thanks for Ankur Kothari (@ankbomb) from product management for the early update.

More Geek out with Perry


Few days ago, Perry Clark, general manager Exchange, posted another video on Exchange design decisions. Subject this time is the apparantly much asked customer question on why recent Exchange versions require rolling moves or migrations instead of in place upgrades?

For previous Geek out with Perry videos, check out this earlier post.