如何从通讯组中删除成员
有时,您必须从通讯组列表中删除成员,因为它们不再属于该列表。在 Microsoft 管理中心中,您一次只能删除单个通讯组中的成员。使用 PowerShell,有更多选项可以从所有通讯组中删除成员。在本文中,您将了解如何在 Microsoft 管理中心和 PowerShell 中删除通讯组成员。
删除 Microsoft 365 中的通讯组成员
在 Microsoft 365 管理中心中,您可以删除通讯组成员。我们将向您展示如何从通讯组列表中删除多个成员。
若要删除 Microsoft 365 管理中心中的通讯组成员,请执行以下步骤:
- 登录 Microsoft 365 管理中心
- 展开团队和群组 > 活跃团队和群组
- 点击分发列表
- 单击通讯组
- 点击成员
- 点击查看和管理成员
- 选择多个成员
- 单击三个点
- 点击删除成员
- 单击是
您已成功从单个通讯组列表中删除多个成员。您还可以从 Exchange 管理中心的通讯组列表或启用邮件的安全组中删除成员。
使用 PowerShell,有更多删除成员的选项,我们将在下一步中向您展示。例如,您可以从所有通讯组列表和启用邮件的组中删除特定成员。
连接到 Exchange Online PowerShell
为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。以管理员身份打开 Windows PowerShell,运行以下 cmdlet,然后使用管理员凭据登录。
Connect-ExchangeOnline删除-DistributionGroupMember 错误:您没有足够的权限
每个通讯组至少有一名经理(所有者)。这意味着只有通讯组经理才被允许执行这些管理任务。因此,当 Exchange Online 管理员尝试使用 Remove-DistributionGroupMember cmdlet 更新通讯组的属性时,如果该管理员不是该通讯组的管理员,则会显示以下错误消息。
错误:您没有足够的权限。该操作只能由群组管理员执行。
请注意,即使具有全局管理员凭据的用户也无法删除或更改通讯组。您不是通讯组经理这一事实可能会阻止您完成所需的管理任务。
管理通讯组需要使用的 PowerShell cmdlet 包含名为 -BypassSecurityGroupManagerCheck 的参数。因此,每当您尝试执行管理任务并出现权限错误时,您都可以将 -BypassSecurityGroupManagerCheck 参数添加到原始 PowerShell 命令中。
请参阅下面的 PowerShell 命令语法示例。
Remove-DistributionGroupMember -Identity "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck在这种情况下,您不必是通讯组的经理(所有者)即可删除成员。
从通讯组中删除成员
要从通讯组列表或启用邮件的安全组中删除成员,我们将使用Remove-DistributionGroupMember PowerShell cmdlet。
在我们的示例中,我们将从启用邮件的安全组(Finance USA)中删除成员(David Kent)。我们还将添加 -Confirm:$false 参数来抑制确认提示。
请参阅以下 PowerShell 命令语法来删除通讯组成员。
Remove-DistributionGroupMember -Identity "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck -Confirm:$false运行 PowerShell 命令示例。
Remove-DistributionGroupMember -Identity "FinanceUSA@m365info.com" -Member "David.Kent@m365info.com" -BypassSecurityGroupManagerCheck -Confirm:$false从所有通讯组列表组中删除成员
您可以使用 PowerShell 从所有通讯组列表组中删除特定成员。
在我们的示例中,用户 Brenda.Smith@m365info.com 是多个通讯组的成员。要从每个通讯组列表中删除用户(Brenda Smith),我们需要使用-Filter参数。
- 在第 1 行上指定 UserPrincipalName (Brenda.Smith@m365info.com)
- 运行以下 PowerShell 脚本
$UPN = "Brenda.Smith@m365info.com"
$AllDistributionGroups = Get-DistributionGroup -ResultSize Unlimited -Filter { RecipientTypeDetails -eq "MailUniversalDistributionGroup" }
$User = @()
$User += Get-User -Identity $UPN -ErrorAction SilentlyContinue
$User += Get-Contact -Identity $UPN -ErrorAction SilentlyContinue
$userID = $User.Identity
foreach ($DistributionGroup in $AllDistributionGroups) {
$groupMembers = Get-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName | Select-Object -ExpandProperty Name
if ($groupMembers -contains $userID ) {
Write-Host "Removing member from group '$($DistributionGroup.Name)'" -ForegroundColor Green
Remove-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName -Member $userID -BypassSecurityGroupManagerCheck -Confirm:$false
}
}从所有通讯组列表和启用邮件的安全组中删除成员
您还可以从所有通讯组列表和启用邮件的安全组中删除特定用户。
在我们的示例中,用户 Brenda.Smith@m365info.com 是多个通讯组列表和启用邮件的组的成员。我们想要从所有这些组中删除用户(Brenda Smith)。
- 在第 1 行上指定UserPrincipalName(Brenda.Smith@m365info.com)
- 运行以下 PowerShell 脚本
$UPN = "Brenda.Smith@m365info.com"
$AllDistributionGroups = Get-DistributionGroup -ResultSize Unlimited
$User = @()
$User += Get-User -Identity $UPN -ErrorAction SilentlyContinue
$User += Get-Contact -Identity $UPN -ErrorAction SilentlyContinue
$userID = $User.Identity
foreach ($DistributionGroup in $AllDistributionGroups) {
$groupMembers = Get-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName | Select-Object -ExpandProperty Name
if ($groupMembers -contains $userID ) {
Write-Host "Removing member from group '$($DistributionGroup.Name)'" -ForegroundColor Green
Remove-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName -Member $userID -BypassSecurityGroupManagerCheck -Confirm:$false
}
}批量删除特定通讯组中的所有成员
使用 PowerShell,您可以从特定通讯组列表或启用邮件的安全组中删除所有成员。
在我们的示例中,我们希望使用 PowerShell 脚本从通讯组 Sales USA 中批量删除所有现有成员。
- 在第 1 行上指定通讯组主 SMTP 地址
- 运行以下 PowerShell 脚本
$groupName = "SalesUSA@m365info.com"
$DistributionGroupMember = Get-DistributionGroupMember $groupName
ForEach ($member in $DistributionGroupMember) {
try {
Remove-DistributionGroupMember -Identity $groupName -Member $member.Name -BypassSecurityGroupManagerCheck -Confirm:$false
Write-Host "Successfully removed $($member.DisplayName) from '$groupName'" -ForegroundColor Green
}
catch {
Write-Host "An error occurred while removing $($member.DisplayName) from '$groupName' $_" -ForegroundColor Red
}
}
就是这样!
了解更多:如何删除完全访问邮箱权限 »
结论
您了解了如何删除通讯组成员。在 Microsoft 365 管理中心中,您可以从通讯组列表组中删除单个或多个成员。借助 PowerShell,可以更轻松、更快速地使用脚本从所有通讯组中删除特定成员。
您喜欢这篇文章吗?您可能还喜欢使用 Microsoft Graph PowerShell 删除 Azure AD 用户。不要忘记关注我们并分享这篇文章。


