Bulk Add Members

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."