How can we live without New-MailboxExportRequest cmdlet? If mailbox export request fails, it simply says Failed when we check Get-MailboxExportRequest. What “the” Heck? Just Failed. Why? How?
[PS] C:\>Get-MailboxExportRequest | FL
RunspaceId : 024fbbda-19f7-47d7-960f-a511c52c7c76
FilePath : \\server\share\user.pst
SourceDatabase : CORP-DB1
Mailbox : company.com/Users/User
Name : MailboxExport
RequestGuid : a70af14e-d6eb-4631-985a-8bdb159b77f6
RequestQueue : CORP-DB1
Flags : IntraOrg, Push, Suspend
BatchName :
Status : Failed
Protect : False
Suspend : True
Direction : Push
RequestStyle : IntraOrg
OrganizationId :
Identity : company.com/Users/user\MailboxExport
IsValid : True
ObjectState : New
Find the event log (Id 1100) and we little more useful information like “This mailbox exceeded the maximum number of corrupted items that were specified for this move request”. And I realized this mailbox has legal hold enabled. It makes sense /Recoverable Items is where export failed. (if you see different event log message, this blog is not for you).
Log Name: Application
Source: MSExchange Mailbox Replication
Date: 9/16/2013 5:45:25 PM
Event ID: 1100
Task Category: Request
Level: Error
Keywords: Classic
User: N/A
Computer: CORPEXCH1.company.comDescription:
Request ‘RequestGuid (a70af14e-d6eb-4631-985a-8bdb159b77f6), RequestQueue: (fc69518e-824e-4edd-a91a-62a3b61f582e)’ (a70af14e-d6eb-4631-985a-8bdb159b77f6) failed.Error code: -2146233088
This mailbox exceeded the maximum number of corrupted items that were specified for this move request.
Context:
——–
Folder: ‘/Recoverable Items’, entryId [len=46, data=000000006E82A1713AC59842B25E5F99B17A025C0100E860929A75F299468B47B5CDC03D99F5000000149F0A0000], parentId [len=46, data=000000006E82A1713AC59842B25E5F99B17A025C0100E860929A75F299468B47B5CDC03D99F5000000149EDD0000]
Obviously there is some bad items in recoverable items folder. The solution is to specify how many bad items can be skipped in export process.
You can specify either in New-MailboxExportRequest with -BadItemLimit and –AcceptLargeDataLoss options. Or use Set-MoveRequest with same options.
Solution 1 (Set-MoveRequest):
- Open Exchange Management Shell
- Type this command. You can choose how many bad items you want to ignore.
Set-MoveRequest -BadItemLimit 50 -AcceptLargeDataLoss -Identity “UserName” –AcceptLargeDataLoss
Solution 2 (New-MailboxRequest):
- Open Exchange Management Shell
- First remove the existing mailbox export request. Get the mailbox name using this cmdlet (Get-MailboxExportRequest | FL)
Get-MailboxExportRequest -Mailbox “company.com/Users/John Doe” | Remove-MailboxExportRequest
- Create a new mailbox export request with acceptable bad item limits
New-MailboxExportRequest -BadItemLimit 50 -AcceptLargeDataLoss -Identity “UserName” -AcceptLargeDataLoss
That’s all. I am sure this helped you understand the issue and the solution. Leave me a reply.
I have a question about the baditemlimit. When the export encounters a bad item, does it skip the item or does it export it as corrupt?
It skips the bad items.
Thanks for the quick reply. Is there any way to export to a .pst that includes the bad items? We have a customer that is on litigation hold for an extended time and it is causing issues. We would like to export the mailboxes to .pst files and remove the hold, but can’t if any messages will be lost.
Brian: I don’t know how to export Bad Items with PowerShell. It either skips with the BadIitemLimit option or fails with an error when it encounters a bad item. But You may try Outlook to export the mailbox to a PST.
Thanks, that is what I was thinking. I will see which ones fail with the export and try to export from Outlook and see if I get error messages. I am not sure if there is a way to tell if the corrupt messages are exported or not.
thanks for this information.