Public/Get-NSPConditionalAccessRunSummary.ps1
|
function Get-NSPConditionalAccessRunSummary { <# .SYNOPSIS One row per run item: result, the stage it is at, and the latest stage message. .EXAMPLE Get-NSPConditionalAccessRunSummary -Run $run.Path | Format-Table -Wrap #> [CmdletBinding()] param( [Parameter(Mandatory)]$Run ) if ($Run -is [string]) { $Run = Get-Content -LiteralPath $Run -Raw | ConvertFrom-Json } foreach ($item in $Run.Items) { $current = @($item.Stages | Where-Object Status -ne 'Succeeded')[0] $last = @($item.Stages | Where-Object { $_.Message })[-1] [pscustomobject]@{ RunStatus = $Run.Status ItemId = $item.ItemId Action = $item.Action Result = $item.Result Stage = if ($current) { "$($current.Name) ($($current.Status))" } else { 'done' } ObjectId = $item.ObjectId Message = if ($last) { $last.Message } else { $null } Notes = (@($item.Notes) -join ' ') } } } |