Latest posts by Aaron Denton (see all)
- Top 10 new features in Windows Server 2012 R2 - Mon, Jun 10 2013
- FREE: Unitrends Enterprise Backup Free Edition - Hyper-V and VMware backup - Tue, Nov 6 2012
- FREE: Remote Desktop Manager - A powerful RDP client - Wed, Sep 19 2012
As a follow up to the five part eDiscoveryinExchange series, I thought it might be helpful to provide some information for a couple of troubleshooting tips that may come in handy while working through the eDiscovery process. An issue you may run into could be due to corrupted items in your Exchange database. The corresponding error message is "This mailbox exceeded the maximum number of corrupted items." For legal inquiry, you’ll want to do what you can to ensure all possible results are included.
As before I’ll address the Exchange 2007 method of fixing as well as the improved methods in Exchange 2010.
Exchange 2007 ^
In Exchange 2007, the Export-Mailbox cmdlet will fail to execute due to bad items in the mailbox. Isinteg, can help with corrupted Exchange items by logically repairing the database.
Isinteg is used to logically repair a database. This is most likely the cause of the corrupted items. Run isinteg -s ServerName -fix -test alltests multiple times until all bad items are repaired. The utility needs to run multiple times to take care of all items.
ServerName should be the name of your mailbox server. If you are in a CCR environment, the cluster name should be used. A list of databases on the server will be displayed, type in the number of the corresponding database you need to check and press Enter. When isinteg is finished, look for rows where the number of fixes is greater than zero. If any are not zero, run isinteg again until it does not result in any more fixes.
Even after all that, you may still be getting an error about bad items when attempting to run the Export-Mailbox cmdlet. In this case, it may be necessary to include the -BadItemLimit parameter. For example, adding -BadItemLimit 10 to the end of the Export-Mailbox cmdlet would allow up to 10 bad items and still export all other items.
Get-Mailbox -Database “Ex2007MB\First Storage Group\Mailbox Database” | Export-Mailbox -PSTFolderPath C:\Temp\export.pst -TargetFolder Results -AllContentKeywords “keyword” -BadItemLimit 10
Exchange 2010 ^
There should not be a reason in Exchange 2010 to use the Export-Mailbox cmdlet for eDiscovery. Exchange 2010 fundamentally changed the way mailbox information is stored. Exchange 2007 used a schema where tables worked across an entire database. This necessitated repairing an entire database when corruption may only be related to a single mailbox. Exchange 2010 now uses tables that are specific to each mailbox.
Because of this change in architecture, repairing a mailbox is much less time consuming. New-MailboxRepairRequest cmdlet (see alsoNew-PublicFolderDatabaseRepairRequest for Public Folder specific options). This one cmdlet replaces the need to run isinteg. The new cmdlet also does not require that the database be dismounted and taken offline. This tool can be run while user’s are still using their mailboxes. As with every cmdlet in EMS, there are many parameters that can be used to control the scope. You could repair a certain type of error on one mailbox or repair all error types for an entire database.
To repair all search folders for an entire database use the –Database and –CorruptionType parameters:
New-MailboxRepairRequest -Database “Accounting Dept” -CorruptionType SearchFolder
Exchange 2010 - 1 New-MailboxRepairRequest Fix Search Folder Corruption One Database
To repair all corruption for a mailbox use the –Mailbox and –CorruptionType parameters:
New-MailboxRepairRequest -Mailbox JohnDoe -CorruptionType AggregateCounts, FolderView, ProvisionedFolder, SearchFolder
Exchange 2010 - 2 New-MailboxRepairRequest Fix All One Mailbox
To see the results of the repair request, look in the Application Event Log for event 10047 (initiated), 10059 (complete database repair), and 10048 (successful completion with no corruptions remain).
Exchange 2010 - 3 Application Events 10047,10048,10059