Nieuw Office 365 bericht: How to bulk add users to a MS Team
Sometimes you want to bulk add users to a team. There is an interface to add users but you have to add them one by one:
In some cases you want to add a lot of users. For example you are a teacher and wants to add your students before the start of your classes. Doing this one by one will be very time consuming. So I created a PowerShell script to do this. You don’t need any special permissions to run the script. You only have to be the owner of the team.
First we need a few things:
The teams group Id
Every team (or group) has an unique Id. You can find this by getting the link of the team and search for the groupId parameter in the url:
The url is something like this:
https://ift.tt/2Rsa323?groupId=e000eb72-0948-4a89-b1ad-ad708beebbb4&tenantId=1a5763a5-a000-486d-8bed-162db29f5e62 (fake url for security reasons )
You need to copy the id: e000eb72-0948-4a89-b1ad-ad708beebbb4
Next we need a list with email addresses that you want to add. Store them in a plain text file (input.txt)
The script will use Microsoft Teams and AzureAD commands so make sure you have installed them by running these commands in PowerShell once (open the PowerShell terminal with elevated permissions):
Install-Module -Name MicrosoftTeams
Install-Module -Name AzureAD
Now we can start, run the following script. You’ll have to enter your credentials a few times.
#change the path to the text file:
$emailaddresses=Get-Content -Path "C:\Users\demouser\input.txt"
#change the ID parameter here
$teamId="GROUP - ID"
# -----------------------------------------
# Run this first
# -----------------------------------------
Set-ExecutionPolicy RemoteSigned
# -----------------------------------------
#not working with MFA accounts
#$crendentials=Get-Credential
Connect-MicrosoftTeams #-Credential $crendentials
Connect-AzureAD #-Credential $crendentials
$team=Get-Team -GroupId $teamId
$groupMembers=(Get-AzureADGroupMember -ObjectId $teamId -All $true | select UserPrincipalName)
#Write-Host $groupMembers
Write-Host "Check current users" -ForegroundColor White
for($i=0; $i -lt $groupMembers.length; $i++){
write-host $groupMembers[$i]
#check if user is in valid user list
#if NO, then delete the user from TEAMS
if($emailaddresses.tolower().Contains($groupMembers[$i].UserPrincipalName.toLower())){
#Write-Host "user found"
}
else{
Write-Host "user not found: remove from TEAMS" -ForegroundColor Red
Remove-TeamUser -groupId $teamId -User $groupMembers[$i].UserPrincipalName
}
}
#add new users
Write-Host "Check user membership" -ForegroundColor White
for($i=0; $i -lt $emailaddresses.length; $i++){
write-host $emailaddresses[$i]
$bUserFound=$false
#check if the user is already in TEAMS
#if NO, then ADD the user
for($j=0; $j -lt $groupMembers.length;$j++){
if($groupMembers[$j].UserPrincipalName.toLower() -eq $emailaddresses[$i].ToLower()){
$bUserFound=$true
#Write-Host "user found in teams members list" -ForegroundColor Yellow
break
}
}
if(!$bUserFound){
Write-Host "adding member to TEAMS" -ForegroundColor Green
Add-TeamUser -GroupId $teamId -User $emailaddresses[$i]
}
}
Feel free to use this!
Dit verscheen eerst op SPums.be