The Search-Mailbox command can be used with a date range to get emails that match a particular criteria and move or copy to a different mailbox.
To specify the date range, you can separate your dates by .. so that Windows Query Language knows to find the emails within the dates. You can also specify the time which is quite helpful.
In this example, I’ve sent 100 emails from sales@sales.com to the mailbox finance1 between 10:00 and 13:00 on 3rd November and want to move these emails to the finance2 mailbox. Run the below command which will work on Exchange 2010, 2013 and 2016:
Get-Mailbox finance1 | Search-Mailbox -SearchQuery {from:sales@sales.com AND Received:”03/11/2015 10:00..03/11/2015 13:00″} -TargetMailbox finance2 -TargetFolder “Query1”
Above you can see the output where it shows that the 100 emails have been moved to the target mailbox.