Microsoft Teams provides a collaborative workspace environment within Microsoft 365. Users can use the Teams as a central hub for group conversations, team meetings, and document sharing. In this post, we will explore how to add members and owners to Teams in bulk using PowerShell.
We can use the Add-TeamUser cmdlet to add a user as a member or owner in a team. Install the latest Microsoft Teams PowerShell module and run the following command to connect the Teams module.
Connect-MicrosoftTeams
Add Member to a Team
Use the below command to add a user as a member to the Team. This command also adds the user to the unified group (Microsoft 365 Groups) which backs the team.
#Syntax
Add-TeamUser -GroupId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -User "[email protected]"
#Get team details by display name
$TeamObj = Get-Team -DisplayName "TestTeam1"
#Add user to the team
Add-TeamUser -GroupId $TeamObj.GroupId -User "[email protected]"
Add user as Owner to a Team
We can use the same command to add the owner by adding the parameter Role as Owner.
$TeamObj = Get-Team -DisplayName "TestTeam1"
Add-TeamUser -GroupId $TeamObj.GroupId -User "[email protected]" -Role Owner
Import Bulk Users from CSV and Add to Multiple Teams
You can use the above commands to add a single user as a member or owner into a single Team. In a large environment, we may need to add members and owners in bulk into multiple teams. Consider the CSV file “TeamUsers.csv” (Download sample CSV) which holds the team and user identity values in each row with the column headers TeamName, GroupID, UserID, and UserPrincipalName. The below script imports the team users and adds the users one by one into the given team (GroupId).
#Read team users from CSV file
$TeamUsers = Import-CSV "C:\Temp\TeamUsers.csv"
$i = 0;
$TotalRows = $TeamUsers.Count
#Iterate team user details one by one
Foreach($TeamUser in $TeamUsers)
{
$TeamName = $TeamUser.'TeamName'
$GroupId = $TeamUser."GroupID"
$UserId = $TeamUser.'UserPrincipalName'
$Role = $TeamUser.'Role'
$i++;
Write-Progress -activity "Processing $TeamName - $UserId - $Role" -status "$i out of $TotalRows completed"
Try
{
#Add user to the team
Add-TeamUser -GroupId $GroupId -User $UserId -Role $Role
}
catch
{
Write-Host "Error occurred for $TeamName - $UserId" -f Yellow
Write-Host $_ -f Red
}
}
List Team Members and Export to CSV
Once you successfully added the users to the required Team, we can use the Get-TeamUser cmdlet to retrieve members and owners of the team.
$TeamObj = Get-Team -DisplayName "TestTeam1"
$TeamMembers = Get-TeamUser -GroupId $TeamObj.GroupId
#List the members
$TeamMembers
#Export the members
$TeamMembers | Export-CSV "C:\Temp\TeamMembers.CSV" -NoTypeInformation -Encoding UTF8