I am trying to get a report from a mailboxsearch from all servers from several dags each running as a job
I am close but need some help tuning it. The Jobs are being created but seem to be running in series.
[pre]
$USADAGS = Get-MailboxServer | Where-Object { $_.DatabaseAvailabilityGroup -like ‘USA-*’ } | Select-Object $DatabaseAvailabilityGroup -Unique
Foreach ($Dag in $GDAGS){Start-Job -Name $Dag.DatabaseAvailabilityGroup -ScriptBlock {
. $env:ExchangeInstallPath\bin\RemoteExchange.ps1
Connect-ExchangeServer -auto -AllowClobber
$USADAGS = Get-MailboxServer | Where-Object { $_.DatabaseAvailabilityGroup -like ‘USA-*’ } | Select-Object $DatabaseAvailabilityGroup -Unique
Foreach ($Dag in $USADAGS){
$StartDate = ((Get-Date).AddDays(-1))
$resultsize = 250000
$servers = Get-MailboxServer | Where-Object { $_.DatabaseAvailabilityGroup -eq $Dag.DatabaseAvailabilityGroup }
$AllServers = foreach ($server in $servers){
Get-Mailbox -server $server.DistinguishedName -ResultSize ‘unlimited’
}
ForEach ($mbx in $AllServers){try{
Search-MailboxAuditLog $mbx.alias -LogonTypes Admin, Delegate -ShowDetails -StartDate $StartDate -resultsize $resultsize -ea ‘stop’ |Select-Object PSComputername, Operation, LogonType, FolderPathName, ClientInfoString, ClientIPAddress, MailboxResolvedOwnerName, MailboxOwnerUPN, ItemSubject, LogonUserDisplayName, LogonUserSid, OriginatingServer, LastAccessed |Export-Csv “C:\exports</span>$($Dag.DatabaseAvailabilityGroup)Search.csv" -NoTypeInformation -Append
}
catch
{ Write-Output "$($mbx) on $($Dag.DatabaseAvailabilityGroup) had the error $($).Exception.Message” |
Out-File :\exports</span>$($Dag.DatabaseAvailabilityGroup)_error.log" -Append
}}}}}
[/pre]