Public/Channels/Get-MMChannelMembers.ps1

# Получение списка участников канала MatterMost

function Get-MMChannelMembers {
    <#
    .SYNOPSIS
        Returns the list of members for a MatterMost channel.
    .EXAMPLE
        Get-MMChannelMembers -ChannelId 'abc123'
    .EXAMPLE
        Get-MMChannelMembers -ChannelName 'general'
    .EXAMPLE
        Get-MMChannel -Name 'general' | Get-MMChannelMembers
    #>

    [CmdletBinding(DefaultParameterSetName = 'ById')]
    [OutputType('MMChannelMember')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)]
        [Alias('id')]
        [string]$ChannelId,

        [Parameter(Mandatory, ParameterSetName = 'ByName')]
        [string]$ChannelName,

        [Parameter(ParameterSetName = 'ByName')]
        [string]$TeamId
    )

    process {
        $resolvedId = if ($PSCmdlet.ParameterSetName -eq 'ByName') {
            (Get-MMChannel -Name $ChannelName -TeamId $TeamId).id
        } else {
            $ChannelId
        }

        $page    = 0
        $perPage = 200
        do {
            $batch = Invoke-MMRequest -Endpoint "channels/$resolvedId/members?page=$page&per_page=$perPage"
            $batch | ConvertTo-MMChannelMember
            $page++
        } while ($batch.Count -eq $perPage)
    }
}