How can I programatically download the output of Get-HistoricalSearch?
I have to use Powershell to perform some message tracing. This involves using Start-HistoricalSearch to begin a search, followed by Get-HistoricalSearch to get the results once it's done. Get-HistoricalSearch returns data along these lines:
PS C:\Users\dscally> Get-HistoricalSearch -JobId "e4e8cecd-e943-4d61-b588-6a0a3c8d3cba" | select *
RunspaceId : 9b3d4d8f-c257-477e-b4e9-8379c2bf788f
JobId : e4e8cecd-e943-4d61-b588-6a0a3c8d3cba
Identity : e4e8cecd-e943-4d61-b588-6a0a3c8d3cba
SubmitDate : 09/06/2020 13:25:40
ReportTitle : First 50 People -90 Days Received
Status : Done
Rows : 171069
FileRows : 50000
ErrorCode :
ErrorDescription :
FileUrl : < report URL here>
ReportStatusDescription : Complete – Ready for download
ReportType : MessageTrace
NotifyAddress : {< my email address here >}
StartDate : 11/03/2020 14:25:40
EndDate : 09/06/2020 14:25:40
DeliveryStatus : All
SenderAddress : {}
RecipientAddress : {<addresses go here>...}
OriginalClientIP :
MessageID : {}
DLPPolicy : {}
TransportRule : {}
Locale : en-GB
Direction : All
CompletionDate : 09/06/2020 13:47:10
EstimatedCompletionTime :
JobProgress :
EncryptionType :
EncryptionTemplate :
IsSaved : False
NumOfBlocks : 0
CompressFile : False
NetworkMessageID : {}
Url :
I need to ideally programatically fetch the report linked to by the FileURL property. Unfortunately it's behind a Microsoft SSO authentication page, and I'm struggling to do it other than through the GUI. Is there a way to pass the authentication it needs through Invoke-WebRequest or some other cmdlet so that I can download the reports with a script.
The context is, there's like several hundred of these and that's more manual clicking than I really want to do.
Try this to download the log with Edge:
$logg = Get-HistoricalSearch -JobId xxxxxx... | select FileUrl
& 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' $logg.FileUrl