internal/functions/Get-OrganizationForDevice.ps1

function Get-OrganizationForDevice {
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory, Position=1, ValueFromPipeline)]
        [ValidateNotNullOrEmpty()]
        [psCustomobject]$Devices
    )

    End {
        $Organizations = foreach ($DeviceURI in (($Devices | Get-Member -MemberType NoteProperty ).Name)) {
            $devices.$DeviceURI.organization
        }
        $OrgIDs = ($organizations |Group-Object).Name | ForEach-Object { ($_ -split '/')[-1] }

        $Organizations = if ($OrgIDs.count -eq 1) {
            Get-SL1Organization -Id $OrgIDs
        } else {
            $OrgFilters = for ($i=0; $i -lt ($OrgIDs.Count); $i++ ) {
                "filter.$($i)._id.eq=$($OrgIDs[$i])"
            }
            Get-SL1Organization -Filter ($OrgFilters -join '&')
        }
        $Organizations
    }
}