Teams details Owners and members

 # Install Microsoft Teams PowerShell Module if not already installed

# Install-Module -Name MicrosoftTeams -Force -AllowClobber

# Connect to Microsoft Teams

Connect-MicrosoftTeams

# Get all Teams groups

$teamsGroups = Get-Team

# Initialize an array to hold details

$teamDetails = @()

foreach ($team in $teamsGroups) {

   $groupId = $team.GroupId

   $teamName = $team.DisplayName

   $privacy = $team.Visibility

   # Get channels

   $channels = Get-TeamChannel -GroupId $groupId

   $standardChannelCount = ($channels | Where-Object {$_.MembershipType -eq 'standard'}).Count

   $privateChannelCount = ($channels | Where-Object {$_.MembershipType -eq 'private'}).Count

   $sharedChannelCount = ($channels | Where-Object {$_.MembershipType -eq 'shared'}).Count

   # Get members and owners

   $members = Get-TeamUser -GroupId $groupId

   $owners = $members | Where-Object {$_.Role -eq 'Owner'}

   $membersCount = $members.Count

   $ownersCount = $owners.Count

   $ownerUPNs = $owners | Select-Object -ExpandProperty User

   $memberUPNs = $members | Where-Object {$_.Role -ne 'Owner'} | Select-Object -ExpandProperty User

   # Collect details

   $teamDetails += [PSCustomObject]@{

       GroupId           = $groupId

       TeamName          = $teamName

       Privacy           = $privacy

       StandardChannels  = $standardChannelCount

       PrivateChannels   = $privateChannelCount

       SharedChannels    = $sharedChannelCount

       MembersCount      = $membersCount

       OwnersCount       = $ownersCount

       OwnerUPNs         = $ownerUPNs -join ", "

       MemberUPNs        = $memberUPNs -join ", "

   }

}

# Export to CSV

$teamDetails | Export-Csv -Path "C:\Temp\TeamsGroupDetails.csv" -NoTypeInformation

has context menu

Comments

Popular posts from this blog

How to Improve Workflow Performance in SharePoint Server 2010

PowerShell Script to Check and Generate Report on Access Rights for a Specific User:

Disable Loopbackcheck using PowerShell