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
Post a Comment