Functions/Get-M365TeamsReport.ps1

function Get-M365TeamsReport 
{
    [CmdletBinding(SupportsPaging=$true)]
    $RequiredScopes = @('Team.ReadBasic.All','TeamMember.Read.All')
    Set-M365MGGraphConnectionScopes -RequiredScopes $RequiredScopes
    Select-MgProfile beta
    $Teams = Get-MgTeam -All
    $TeamsReport = [System.Collections.Generic.List[PsObject]]::new()
    $i = 1
    foreach ($Team in $Teams)
    {
        Write-Progress -Activity "Processing Teams details" -Status "Working on $($Team.displayname)" -PercentComplete (($i / $Teams.Count) * 100)
        $TeamMembers = Get-MgTeamMember -TeamId $Team.id       
        $i++
        $TeamsReport.Add([pscustomobject]@{
                'TeamName' = $Team.displayname
                'Description' = $Team.Description
                'Visibility' = $Team.Visibility
                'Members' = $TeamMembers.AdditionalProperties.email -join ' , '
            })
    }
    $TeamsReport
    Write-Warning "Please remember to disconnect from the Microsoft Graph by using 'Disconnect-MGGraph'"
}