The example below assumes you have already installed ODM Powershell module.
How to install ODM API Powershell
Note that this script is provided as-is for example purposes only, and you may need to modify it to work for your specific project.
The below example download and save to csv file the events of a task based on the task diagnostics information.
How to get task diagnostics information
$Path = "c:\temp\" Write-Host "`n`n" $DiagInfo = Read-Host "Paste in the Copy Diagnostics text and press Enter" $ClearedDiagInfo = $DiagInfo -replace '[^\p{L}\p{Nd}/=/_/-]', '' Write-Host "`n" $OrganizationID = ($ClearedDiagInfo | Out-String | % { [Regex]::Matches($_, "(?<=OrganizationID)((.|\n)*?)(?=DeploymentRegion)") }).value $Region = ($ClearedDiagInfo | Out-String | % { [Regex]::Matches($_, "(?<=DeploymentRegion)((.|\n)*?)(?=OrganizationName)") }).value $OrganizationName = ($ClearedDiagInfo | Out-String | % { [Regex]::Matches($_, "(?<=OrganizationName)((.|\n)*?)(?=ProjectID)") }).value $ProjectWorkloadID = ($ClearedDiagInfo | Out-String | % { [Regex]::Matches($_, "(?<=ProjectID)((.|\n)*?)(?=TaskID)") }).value $TaskID = $ClearedDiagInfo.Substring(($ClearedDiagInfo.IndexOf("TaskID") + 6), ($ClearedDiagInfo.length - $ClearedDiagInfo.IndexOf("TaskID") - 6)) Write-Host "Connecting to Region:"$Region Connect-OdmService -Region $Region # -NoPrompt Write-Host "Selecting Organization:"$OrganizationID Select-OdmOrganization $OrganizationID Write-Host "Selecting ProjectWorkload:"$ProjectWorkloadID clear-variable AllProjectworkloads -ErrorAction SilentlyContinue $Projects = Get-OdmProject foreach ($Project in $Projects) { $Projectworkloads = get-odmproject $project.Id | get-odmprojectworkload foreach ($Projectworkload in $Projectworkloads) { add-member -InputObject $Projectworkload -MemberType NoteProperty -Name ProjectID -Value $Project.ID }$AllProjectworkloads = $AllProjectworkloads + $Projectworkloads }; $CurrProjectWorkload = $AllProjectworkloads | Where-Object { $_.Id -eq $ProjectWorkloadID } Get-OdmProject $CurrProjectWorkload.ProjectID | Get-OdmProjectWorkload -Type $CurrProjectWorkload.WorkloadType | Select-OdmProjectWorkload clear-variable task -ErrorAction SilentlyContinue $task = get-odmtask -TaskId $TaskID If ($null -eq $task) { Write-Host "`n`n"; write-host "No task found, probably deleted?"; break } Write-Host "Downloading events" $events = get-odmevent -all -FilterObject $task $events | export-csv ($path + $taskid + ".csv") -notypeinformation