Scenario: Recently I was attempting to perform a Message Trace in Exchange Online for a message that went out to 7000+ recipients but realized I could only pull back 1000 results.
Solution: I used Page and PageSize with the Get-MessageTrace in a loop to pull back more results
#Collect more than 1000 results in Exchange Online
$P = 1
$messages = $null
do
{
Write-Host “Message Trace – Page $P…”
$temp_Messages = Get-MessageTrace -senderaddress maccount@microsoft.com -startdate 8/14/2019 -enddate 8/15/2019 -PageSize 1000 -Page $P
$P++
$Messages += $temp_Messages
}until ($temp_Messages -eq $null)
#display messages
$Messages.Count
$Messages