Private/Get-Monitors.ps1

function Get-Monitors {
    param (
        [Parameter(Mandatory = $true, Position = 1)]
        [Object[]]
        $Cards
    )

    $Monitors = foreach ($Card in $Cards) {
        try {
            Get-ChildItem $Card.PSPath -ErrorAction Stop
        } catch {
            Write-Warning ('Failed to find monitors on card: {0}' -f $Card)
        }
    }

    if ($Monitors) {
        Write-Output $Monitors
    } else {
        Throw 'Failed to find monitors'
    }
}