Public/Show-W365ConnectivityHistory.ps1

function Show-W365ConnectivityHistory {
    [CmdletBinding()]
    [OutputType('WindowsCloudPC.CloudPCConnectivityEvent')]
    param(
        [object]$CloudPC,
        [switch]$Browse
    )

    begin { Import-W365CliWindowsCloudPC }

    process {
        $target = if ($CloudPC) { $CloudPC } else { Show-W365CloudPC }
        if (-not $target) { return }
        $items = @($target | Get-CloudPCConnectivityHistory | Sort-Object EventDateTime -Descending)
        if ($items.Count -eq 0) { Write-Warning 'No connectivity history rows were returned.'; return }

        $columnHeader = '{0} {1} {2} {3} {4}' -f
            (Format-W365CliText -Text 'Time' -Width 22),
            (Format-W365CliText -Text 'Type' -Width 18),
            (Format-W365CliText -Text 'Event' -Width 28),
            (Format-W365CliText -Text 'Result' -Width 12),
            (Format-W365CliText -Text 'Message' -Width 50)

        Select-W365CliObject -InputObject $items -Title "Connectivity history for $($target.Name)" -DisplayProperties @(
            'EventDateTime','EventType','EventName','EventResult','Message'
        ) -FilterProperties @('EventType','EventName','EventResult','Message') -LabelScript {
            param($Event)
            '{0} {1} {2} {3} {4}' -f
                (Format-W365CliText -Text $Event.EventDateTime -Width 22),
                (Format-W365CliText -Text $Event.EventType -Width 18),
                (Format-W365CliText -Text $Event.EventName -Width 28),
                (Format-W365CliText -Text $Event.EventResult -Width 12),
                (Format-W365CliText -Text $Event.Message -Width 50)
        } -DetailScript {
            param($Event)
            $Event.PSObject.Properties | Where-Object Name -notlike 'Raw*' | ForEach-Object { "{0}: {1}" -f $_.Name, $_.Value }
        } -RefreshScript {
            @($target | Get-CloudPCConnectivityHistory | Sort-Object EventDateTime -Descending)
        } -ColumnHeader $columnHeader -PageSize 18 -ViewOnly:$Browse -Breadcrumb @('W365CLI','Reports','Connectivity history')
    }
}