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.