Use PowerShell to add members to Teams.
# Define the log file path
$logFile = "AddingPermlogfile.log"
# Function to write to log file
function Write-Log {
param (
[string]$message
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path $logFile -Value "$timestamp - $message"
}
# Start logging
Write-Log "Script started."
Write-Output "Script started."
# Import the CSV file
$teams = Import-Csv -Path "Wave00.csv"
# Get all teams once at the beginning
try {
$allTeams = Get-Team
Write-Log "Retrieved all teams successfully."
Write-Output "Retrieved all teams successfully."
} catch {
Write-Output "Failed to retrieve teams: $_"
Write-Log "Failed to retrieve teams: $_"
throw $_
}
foreach ($team in $teams) {
# Extract team details
$displayName = $team.DisplayName
$mailNickname = $team.MailNickname
$owners = $team.Owners -split ";"
$members = $team.Members -split ";"
# Find the GroupId using the pre-fetched list of teams
$group = $allTeams | Where-Object { $_.DisplayName -eq $displayName -and $_.MailNickname -eq $mailNickname }
if ($null -ne $group) {
$groupId = $group.GroupId
# Add Owners
foreach ($owner in $owners) {
try {
Add-TeamUser -GroupId $groupId -User $owner -Role Owner
Write-Log "Added $owner as owner to team $displayName"
Write-Output "Added $owner as owner to team $displayName"
} catch {
Write-Log "Failed to add $owner as owner to team ${displayName}: $_"
Write-Output "Failed to add $owner as owner to team ${displayName}: $_"
}
}
# Add Members
foreach ($member in $members) {
try {
Add-TeamUser -GroupId $groupId -User $member -Role Member
Write-Log "Added $member as member to team $displayName"
Write-Output "Added $member as member to team $displayName"
} catch {
Write-Log "Failed to add $member as member to team ${displayName}: $_"
Write-Output "Failed to add $member as member to team ${displayName}: $_"
}
}
} else {
Write-Log "Team with DisplayName '$displayName' and MailNickname '$mailNickname' not found."
Write-Output "Team with DisplayName '$displayName' and MailNickname '$mailNickname' not found."
}
}
Write-Log "Adding members and owners completed."
Write-Log "Script ended."
Write-Output "Adding members and owners completed."
Write-Output "Script ended."