Exchange 2010 SP1 introduces a new Exchange Management Shell (EMS) cmdlet New-MailboxRepairRequest that allows an administrator to check and repair a users mailbox.
Here is the syntax
New-MailboxRepairRequest -Mailbox <MailboxIdParameter> -CorruptionType <MailboxStoreCorruptionType> [-Archive <SwitchParameter>] [-Confirm [<SwitchParameter>]] [-DetectOnly <SwitchParameter>] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]
New-MailboxRepairRequest -Database <DatabaseIdParameter> -CorruptionType <MailboxStoreCorruptionType> [-Confirm [<SwitchParameter>]] [-DetectOnly <SwitchParameter>] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]
Lets look at a quick example.
[PS] C:\>New-MailboxRepairRequest -Mailbox firstname.lastname@example.org -CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView | fl
Here is the output
After the job has been submitted you can look at your event viewer to check the status of the mailbox repair. You will look for the following event IDs 10047 A mailbox-level repair request started, 10048 The repair request successfully completed, 10050 The mailbox repair request task skipped a mailbox, 10059 A database-level repair request started, 10062 Corruption was detected.
You will see something like this
It is important to note that the repair events will only show up on the mailbox server where the mailbox is located. I ran the above command on a CAS server but had to go to mbx01 to check the event viewer.
For detailed parameter explanations for the New-MailboxRepairRequest cmdlet check the Following Technet Article