Exchange 2010 - Search-Mailbox error

In Exchange, when running a the search-mailbox command and you have a large user base, you might encounter the following error:

Sending data to a remote command failed with the following error message: The total data received from the remote clien
t exceeded allowed maximum. Allowed maximum is 524288000. For more information, see the about_Remote_Troubleshooting He
lp topic.

  • CategoryInfo : OperationStopped: (System.Manageme...pressionSyncJob:PSInvokeExpressionSyncJob) [], PSRe
    motingTransportException
  • FullyQualifiedErrorId : JobFailure

https://collaborationpro.com/wp-content/uploads/2018/03/search-error.png

The error takes a while to show but unfortunately it has reached a default limit which cannot be changed.

Don't worry, there are some workarounds which can get you through this, here are some of them:

  • You can add this into a foreach statement to loop through each mailbox at a time
  • You could run the command against each mailbox server, however if you have hundreds of servers it might not be an option.
  • You can lastly create a new PSSessionConfiguration on your remote server where you running this, however you might also hit a memory quota error.
  • Changing your Search Query by shortening the date range.

To expand on the above, you can use the following command below to create a foreach statement to loop though the mailboxes:

ForEach Statement:

$Users = Get-Content "C:\Users\User\Script\Users.csv"foreach ($User in $Users){    Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "Received:> $("2016-06-15 00:00:00") AND Received:< $("2016-07-01 00:00:00")" -targetmailbox domain\mailbox -TargetFolder Search1 -LogLevel full}

vs the standard command to search the mailbox:

Get-Mailbox -ResultSize unlimited -OrganizationalUnit 'domain.local/OU/domain.com' | Search-Mailbox -SearchQuery "Received:> $("2016-06-15 00:00:00") AND Received:< $("2016-07-01 00:00:00")" -targetmailbox domain\mailbox -TargetFolder Search1 -LogLevel full

Using an Individual mailbox server:

Get-MailboxServer -Identity Server1 | Get-Mailbox -ResultSize unlimited -OrganizationalUnit 'domain.local/OU/domain.com' | Search-Mailbox -SearchQuery "Received:> $("2016-06-15 00:00:00") AND Received:< $("2016-07-01 00:00:00")" -targetmailbox domain\mailbox -TargetFolder Search1 -LogLevel full

Creating a new PSSessionConfiguration, this includes 3 commands:

Register-PSSessionConfiguration -Name CustomLimits
Set-PSSessionConfiguration -Name CustomLimits -MaximumReceivedDataSizePerCommandMB 500 -MaximumReceivedObjectSizeMB 500
$Session = New-PSSession -ComputerName Server2 -ConfigurationName CustomLimits

If you still getting errors then try and change your search, shortening the date range.