[玩转系统] 如何使用 PowerShell 将成员添加到通讯组
作者:精品下载站 日期:2024-12-14 05:51:24 浏览:13 分类:玩电脑
如何使用 PowerShell 将成员添加到通讯组
您可以将多个用户添加到 Microsoft 管理门户中的现有通讯组列表或启用邮件的安全组。但使用 PowerShell,速度要快得多,并且您可以使用 CSV 文件将成员添加到多个通讯组列表组。在本文中,您将了解如何使用 PowerShell 将成员添加到通讯组。
连接到 Exchange Online PowerShell
为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。以管理员身份打开 Windows PowerShell,运行以下 cmdlet,然后使用管理员凭据登录。
Connect-ExchangeOnline
Add-DistributionGroupMember 错误:您没有足够的权限
每个通讯组至少有一名经理(所有者)。这意味着只有通讯组经理才被允许执行这些管理任务。因此,当 Exchange Online 管理员尝试使用 Add-DistributionGroupMember cmdlet 更新通讯组的属性时,如果该管理员不是该通讯组的管理员,则会出现以下错误消息。
错误:您没有足够的权限。该操作只能由群组管理员执行。
请注意,即使具有全局管理员凭据的用户也无法添加成员或对通讯组进行更改。您不是通讯组经理这一事实可能会阻止您完成所需的管理任务。
管理通讯组需要使用的 PowerShell cmdlet 包含名为 -BypassSecurityGroupManagerCheck 的参数。因此,每当您尝试执行管理任务并出现权限错误时,您都可以将-BypassSecurityGroupManagerCheck参数添加到原始PowerShell命令中。
请参阅 PowerShell 命令语法示例。
Add-DistributionGroupMember "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck
运行 PowerShell 命令示例。
Add-DistributionGroupMember "[email protected]" -Member "[email protected]" -BypassSecurityGroupManagerCheck
在我们的示例中,任何人都可以将成员添加到通讯组(英国销售)。
将用户添加到通讯组
您始终可以将用户作为新成员添加到现有通讯组中。我们将向您展示不同的情况:
- 将单个成员添加到现有通讯组
- 将批量用户添加到单个现有通讯组
- 将多个用户添加到单个现有通讯组
- 将批量用户添加到所有现有通讯组
为此,我们需要使用 Add-DistributionGroupMember PowerShell cmdlet。
将成员添加到通讯组
始终可以将特定成员添加到现有通讯组。
请参阅 PowerShell 命令语法。
Add-DistributionGroupMember "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck
运行以下 PowerShell 命令示例。
Add-DistributionGroupMember -Identity "[email protected]" -Member "[email protected]" -BypassSecurityGroupManagerCheck
将用户从 CSV 添加到特定通讯组
我们希望通过使用 PowerShell 从 CSV 文件导入所有用户的列表来向现有通讯组添加多个成员。
- 运行 PowerShell 命令导出组织中所有活动用户邮箱的列表
Get-Mailbox -ResultSize Unlimited | Select DisplayName, Alias, PrimarySmtpAddress | Export-Csv "C:\temp\Distribution Group Members.csv" -NoTypeInformation -Encoding UTF8
- 转到 C:\temp 文件夹
- 打开CSV文件查看所有用户邮箱的列表
- 每个用户都有多个身份,例如显示名称、别名和主 SMTP 地址
- 您可以编辑列表并删除不想添加为通讯组成员的用户(可选)
在我们的示例中,我们希望将此用户列表添加到名为 Sales France 的特定通讯组。
- 在下面脚本的第 3 行中键入特定通讯组身份
- 运行以下 PowerShell 脚本
$Userslist = Import-Csv "C:\temp\Distribution Group Members.csv"
ForEach ($User in $Userslist) {
Add-DistributionGroupMember -Identity "[email protected]" -Member $User.PrimarySmtpAddress -BypassSecurityGroupManagerCheck
}
注意:如果用户已经是该组的成员或者该用户不存在,您将在输出中收到一条消息。
Add-DistributionGroupMember: Ex93E602|Microsoft.Exchange.Management.Tasks.MemberAlreadyExistsException|The recipient
"[email protected]" is already a member of the group "Sales France".
Add-DistributionGroupMember: Ex94914C|Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException|Couldn't
find object "[email protected]". Please make sure that it was spelled correctly or specify a different object.
将特定部门的所有用户添加到通讯组
您可以将组织中特定部门(例如销售部门)的所有用户添加到现有通讯组。
在我们的组织中,我们有多个销售部门,例如英国销售、美国销售和法国销售。
我们希望获取所有销售部门的所有用户,并将他们作为成员添加到通讯组列表组 AllSalesDepartments 中。
- 我们需要使用 PowerShell 字符串 Sales* 查找销售部门的所有用户。
- 我们使用变量$SalesUsers来存储有关用户列表的信息。
- 然后,我们运行 PowerShell 循环进程,该进程将使用变量 $SalesUsers 中存储的信息,并将 $SalesUsers 变量中存储的每个成员添加到通讯组 所有销售部门。
运行以下 PowerShell 脚本。
$SalesUsers = Get-User | Where { $_.Department -like "Sales*" }
foreach ($User in $SalesUsers) {
Add-DistributionGroupMember -Identity "[email protected]" -Member $User.Name -BypassSecurityGroupManagerCheck
}
您已成功使用 PowerShell 将成员添加到现有通讯组。
从 CSV 批量添加成员到多个通讯组
您可以从 CSV 文件将现有用户作为成员添加到多个通讯组列表和启用邮件的安全组。您需要创建一个包含两列的 CSV。包含通讯组列表的列和包含您希望添加为成员的现有用户的列。
创建一个包含两列的 CSV 文件:
- 打开记事本或Microsoft Excel
- 在第一列顶部输入GroupName
- 列出现有通讯组主 SMTP 地址
- 在第二列顶部输入成员
- 列出成员的 UserPrincipalName
注意:列名GroupName不得包含任何空格,且通讯组必须存在。
请参阅下面的 CSV 文件示例。
- 如果 (C:) 驱动器中还没有文件夹 temp,请创建该文件夹
- 将文件命名为 DL Group Members.csv
- 保存类型为 CSV(逗号分隔 (*.csv)
- 点击保存
- 运行以下 PowerShell 脚本
# Specify the path to your CSV file
$csvPath = "C:\temp\DL Group Members.csv"
# Import the CSV file
$csvData = Import-Csv -Path $csvPath
# Loop through each row in the CSV file and update the distribution group
foreach ($row in $csvData) {
$member = $row.Member
$groupName = $row.GroupName
# Check if the user specified in Member exists
$userExists = @()
$userExists += Get-User -Identity $member -ErrorAction SilentlyContinue
$userExists += Get-Contact -Identity $member -ErrorAction SilentlyContinue
# Check if the distribution group specified in GroupName exists
$groupExists = Get-DistributionGroup -Identity $groupName -ErrorAction SilentlyContinue
if ($userExists -and $groupExists) {
# Both user and group exist, so proceed with updating the distribution group
try {
# Get the user's ID
$userID = $userExists.Identity
# Check if the user is already a member of the group
$isMember = Get-DistributionGroupMember -Identity $groupName | Where-Object { $_.Identity -contains $userID }
if (-not $isMember) {
# User is not a member, so add them
Add-DistributionGroupMember -Identity $groupName -Member $member -BypassSecurityGroupManagerCheck -ErrorAction Stop
Write-Host "Added user $member as member to $groupName." -ForegroundColor Green
}
else {
Write-Host "User $member is already a member of $groupName. No action needed." -ForegroundColor Cyan
}
}
catch {
Write-Host "Failed to update member for $groupName. Error: $($_.Exception.Message)" -ForegroundColor Red
}
}
elseif (-not $groupExists) {
# Group doesn't exist, display a message
Write-Host "Distribution group $groupName specified in GroupName column doesn't exist. Skipping." -ForegroundColor Yellow
}
elseif (-not $userExists) {
# User doesn't exist, display a message
Write-Host "User $member specified in member column doesn't exist. Skipping." -ForegroundColor Yellow
}
}
PowerShell输出结果显示:
- 当您添加用户作为通讯组的成员时
- 如果通讯组不存在
- 如果用户已经是通讯组的成员
- 用户在 Microsoft 365 中不存在
Added user [email protected] as member to [email protected].
User [email protected] is already a member of [email protected]. No action needed.
Distribution group [email protected] specified in GroupName column doesn't exist. Skipping.
User [email protected] specified in member column doesn't exist. Skipping.
Added user [email protected] as member to [email protected].
Added user [email protected] as member to [email protected].
User [email protected] specified in member column doesn't exist. Skipping.
将用户添加到多个通讯组
我们将向您展示如何以不同的方式将特定用户添加到多个通讯组。
将用户添加到多个通讯组
您可以将单个用户作为成员添加到多个通讯组列表和启用邮件的安全组。使用以下脚本并键入您想要分配给不同通讯组的成员。
该脚本由两部分组成:
- 在第 1 行中指定通讯组主 SMTP 地址
- 在第 3 行中指定要添加的成员的UserPrincipalName
在我们的示例中,我们希望用户 [email protected] 成为两个通讯组的成员(Sales UK 和 Sales USA )。
运行以下 PowerShell 示例。
$DistributionGroupsList = "[email protected]", "[email protected]"
ForEach ($DistributionGroup in $DistributionGroupsList) {
Add-DistributionGroupMember -Identity $DistributionGroup -Member "[email protected]" -BypassSecurityGroupManagerCheck
}
注意:如果用户已经是该组的成员或者该用户不存在,您将在输出中收到一条消息。
添加用户以批量处理所有通讯组
在这种情况下,我们希望将特定用户添加到所有现有通讯组列表和启用邮件的安全组中。
- 我们将使用名为 $AllDistributionGroups 的变量来获取整个组织中的通讯组列表和启用邮件的安全组。
- 然后,我们使用 ForEach PowerShell 语句对现有通讯组列表执行循环过程。
- 在以下脚本的第 3 行中指定要添加的成员的 UserPrincipalName。
运行以下 PowerShell 脚本示例。
$AllDistributionGroups = Get-Distributiongroup -ResultSize Unlimited
ForEach ($DistributionGroup in $AllDistributionGroups) {
Add-DistributionGroupMember -Identity $DistributionGroup -Member "[email protected]" -BypassSecurityGroupManagerCheck
}
注意:如果用户已经是该组的成员或者该用户不存在,您将在输出中收到一条消息。
从 CSV 文件将用户添加到多个通讯组
从 CSV 文件将特定用户添加到多个通讯组列表和启用邮件的安全组的另一种方法。您需要创建一个 CSV,其中包含您希望将此用户添加为成员的通讯组列表。
创建一个包含两列的 CSV 文件:
- 打开记事本或Microsoft Excel
- 在第一列顶部输入GroupName
- 列出现有通讯组的主 SMTP 地址
- 在第二列顶部输入类型
- 输入分发或安全
注意:列GroupName不得包含任何空格,并且通讯组必须存在。
- 如果 (C:) 驱动器中还没有文件夹 temp,请创建该文件夹
- 将文件命名为DL Group Type.csv
- 保存类型为 CSV(逗号分隔 (*.csv)
- 点击保存
- 使用 Import-Csv cmdlet 检查 CSV 文件
为了确保 PowerShell 可以读取该文件,请运行 Import-Csv cmdlet。
Import-Csv "C:\temp\DL Group Type.csv"
- 在第 3 行中指定成员的UserPrincipalName
- 运行以下 PowerShell 脚本
$DistributionGroupsList = Import-Csv "C:\temp\DL Group Type.csv"
ForEach ($DistributionGroup in $DistributionGroupsList) {
Add-DistributionGroupMember -Identity $DistributionGroup.GroupName -Member "[email protected]" -BypassSecurityGroupManagerCheck
}
注意:如果用户已经是该组的成员或者该用户不存在,您将在输出中收到一条消息。
将用户添加到过去 48 小时内创建的通讯组
您可以将特定用户添加到过去 48 小时内所有新创建的通讯组中。
在我们的示例中,我们将用户 [email protected] 添加到过去 48 小时内创建的通讯组中。
运行以下 PowerShell 示例。
$AllNewDistributionGroups = Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.WhenCreated -ge (Get-Date).AddHours(-48) }
ForEach ($DistributionGroup in $AllNewDistributionGroups) {
Add-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName -Member "[email protected]" -BypassSecurityGroupManagerCheck
}
注意:如果用户已经是该组的成员或者该用户不存在,您将在输出中收到一条消息。
如果不是成员,则将用户添加到通讯组
您想要验证特定用户是否是现有通讯组的成员。在我们的示例中,我们要检查 Brenda Smith 是否是通讯组 Sales UK 的成员。
- 我们要检查的用户是 Brenda Smith
- 通讯组名称为 Sales UK
如果特定用户(Brenda Smith)不是通讯组Sales UK的成员,那么我们希望将该用户添加为通讯组的成员。
运行以下 PowerShell 示例。
$User = Get-User -Identity "[email protected]"
$Group = Get-DistributionGroup -Identity "[email protected]"
if ($Group.PrimarySmtpAddress -notcontains $User.Name)
{ Add-DistributionGroupMember -Identity $Group.PrimarySmtpAddress -Member $User.Name -BypassSecurityGroupManagerCheck }
它会自动将用户添加为通讯组的成员。
了解更多:解锁 Microsoft 365 用户登录 »
结论
您学习了如何使用 PowerShell 添加通讯组成员。可以将单个用户或多个用户作为成员添加到现有通讯组。使用 Powershell,有多种方法可以完成任务,并且可以节省时间。
您喜欢这篇文章吗?您可能还喜欢为 Microsoft 365 用户重置 MFA。不要忘记关注我们并分享这篇文章。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag