Use PowerShell to remove members from Teams.
# Define the log file path
$logFile = "Remove-Teams-logfile.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."
# Import the CSV file
$teams = Import-Csv -Path "Teams-Revert.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-Log "Failed to retrieve teams: $_"
throw $_
Write-Output "Failed to retrieve teams: $_"
}
foreach ($team in $teams) {
# Extract team details
$displayName = $team.DisplayName
$mailNickname = $team.MailNickname
$removeOwners = $team.RemoveOwners -split ";"
$removeMembers = $team.RemoveMembers -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
# Remove Owners
foreach ($removeOwner in $removeOwners) {
if ($removeOwner -ne "") {
try {
Remove-TeamUser -GroupId $groupId -User $removeOwner -Role Owner
Write-Log "Removed $removeOwner as owner from team $displayName"
Write-Output "Removed $removeOwner as owner from team $displayName"
} catch {
Write-Log "Failed to remove $removeOwner as owner from team ${displayName}: $_"
Write-Output "Failed to remove $removeOwner as owner from team ${displayName}: $_"
}
}
}
# Remove Members
foreach ($removeMember in $removeMembers) {
if ($removeMember -ne "") {
try {
Remove-TeamUser -GroupId $groupId -User $removeMember -Role Member
Write-Log "Removed $removeMember as member from team $displayName"
Write-Output "Removed $removeMember as member from team $displayName"
} catch {
Write-Log "Failed to remove $removeMember as member from team ${displayName}: $_"
Write-Output "Failed to remove $removeMember as member from 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 "Removing members and owners completed."
Write-Log "Script ended."
Write-Output "Removing members and owners completed."
Write-Output "Script ended."