[玩转系统] 在 Office 365 中使用 PowerShell 管理通讯组 |将成员添加到现有通讯组 |第 3 部分#5
作者:精品下载站 日期:2024-12-14 09:05:01 浏览:12 分类:玩电脑
在 Office 365 中使用 PowerShell 管理通讯组 |将成员添加到现有通讯组 |第 3 部分#5
当前文章是五篇文章系列的第三篇文章,专门讨论使用 PowerShell 在基于 Office 365 和 Exchange Online 的环境中管理通讯组的主题。
本文专门讨论使用 PowerShell 将成员添加到现有通讯组的主题。
在 Office 365 中使用 PowerShell 管理通讯组 |系列文章
- 在 Office 365 中使用 PowerShell 管理通讯组 | PowerShell 命令参考 |第 1#5 部分
- 在 Office 365 中使用 PowerShell 管理通讯组 |创建新通讯组并管理现有通讯组 |第 2 部分#5
- 在 Office 365 中使用 PowerShell 管理通讯组 |将成员添加到现有通讯组 |第 3 部分#5
- 在 Office 365 中使用 PowerShell 管理通讯组 |查看和导出有关通讯组的信息 |第 4 部分#5
- 在 Office 365 中使用 PowerShell 管理通讯组 |删除通讯组和成员|转换通讯组|第 5 部分#5
将成员添加到通讯组 - 前缀
在接下来的部分中,我们将回顾两个主要场景,其中我们需要向现有分发组添加“新成员”。
- 场景 1#2 - 在此场景中,我们希望将“大量”用户添加到特定的通讯组(多对一关系)。
- 场景 2#2 - 在此场景中,我们希望将特定用户添加到“批量”通讯组(一对多关系)。
将新成员添加到通讯组的管理任务是通过使用下面的 PowerShell cmdlet 来实现的。
Add-DistributionGroupMember
使用通讯组列表和通讯组成员列表。
在下一节中,我们将讨论一个可以描述为“组”、“列表”的概念,或者如果我们想使用更专业的术语“数组”。
该术语定义了一个逻辑容器,“存储对象(成员)
在特定场景中,我们将使用包含用户对象或分发组对象的“数组”。
在我们的示例中,我们使用以下方法之一创建一个“数组”:
- 选项 1:根据不同 PowerShell 命令的输出创建的数组。
例如,我们从
PowerShell 命令 Get-DistributionGroup 获取的现有通讯组列表 - 选项 2:使用文件作为“数组”的“源”。
在这种情况下,我们使用一个文件(大多数情况下是 CSV 文件),其中包含分发组列表、用户列表等在。 - 选项 3:通过手动提供所需通讯组的“列表”或用户列表来创建“数组”。在这种情况下,我们手动提供每个通讯组或每个用户的名称,并用逗号分隔。
场景 1 - 将用户(收件人)添加到通讯组
这是一个简单的场景,我们希望将特定用户添加到通讯组。
在此示例中,我们“写下”通讯组的名称以及将添加到通讯组的“成员”的名称。
场景 1 - 将用户(收件人)添加到通讯组
这是一个简单的场景,我们希望将特定用户添加到通讯组。
在此示例中,我们“写下”通讯组的名称以及将添加到通讯组的“成员”的名称。
将用户(收件人)添加到通讯组
PowerShell命令语法:
Add-DistributionGroupMember "<Distribution Group Name>" -Member <Identity>
PowerShell 命令示例:
Add-DistributionGroupMember -Identity "Sales UK" -Member Bradp
将用户列表添加到特定通讯组
在下一节中,我们回顾不同场景的示例,它们的共同点是我们需要将“用户列表”(数组)添加到特定的分发组。
这种场景可以描述为——多对一的关系。
场景 1 - 将“用户列表”(多个用户)添加到通讯组 |从 CSV 文件导入“成员列表”
在本例中,我们希望通过从 CSV(逗号分隔值)文件导入成员列表来将成员添加到现有通讯组。
在当前场景中,我们使用以下 PowerShell 命令将有关 Office 365 用户的信息导出到 CSV 文件:
PowerShell 命令示例:
Get-mailbox | Select DisplayName,Alias,PrimarySmtpAddress | Export-CSV c:\temp\Distribution-Groups-Members.csv -NoTypeInformation -Encoding utf8
CSV 文件结构和“逻辑”
CSV 文件结构基于“列”和“行”的概念。
在我们的示例中,CSV 文件包含用户列表。请注意,每个用户(每行)可以有几个“身份”。
例如,每个用户都具有以下身份:显示名称、别名和主电子邮件地址。
在我们的示例中,我们通过“获取”存储在名为 PrimaryE-mailaddress 的列中的用户身份来“关联”用户身份。
从技术上讲,我们可以选择另一个用户的身份,例如“DisplayName”或“Alias”。
PowerShell 命令结构。
我们使用的 PowerShell 脚本基于以下语法:
从 CSV 文件导入通讯组成员 |命令结构
PowerShell命令语法:
lt;Variable> = Import-CSV <path> ForEach (
lt;Variable> in
lt;Variable>) { Add-DistributionGroupMember -Identity "<DL NAME>" -Member
lt;Variable>.<Identity> }
- 第 1#3 部分 - 在 PowerShell 命令的第一部分中,我们从 CSV 文件导入信息(用户列表)。在我们的示例中,我们“声明”了一个名为 $UsersList 的变量,该变量将用作 CSV 文件内容的逻辑容器。
- 第 2#3 部分 - 在 PowerShell 命令的第二部分中,我们使用“ForEach”PowerShell 语句来执行“循环过程”。
- PowerShell“循环过程”使用一个名为 - $User 的附加变量。
- $User 变量充当“临时”容器,将为循环过程中的每个“周期”存储特定的用户身份。
- 第 3#3 部分 - 这是“实际的 PowerShell 命令”,我们使用它 (Add-DistributionGroupMember) 将 CSV 文件中出现的每个用户添加到特定的通讯组。
在我们的示例中,分发组名称是“Marketing USA”
请注意,我们通过使用“附加”到名为 PrimarySmtpAddress 的 CSV 文件中的特定列的 $User 变量的组合来与通讯组成员相关联,通过使用以下约定$User.PrimarySmtpAddress。
换句话说,我们指示 PowerShell 循环进程使用 PrimarySmtpAddress 作为用户身份。
从 CSV 文件导入通讯组成员
PowerShell 命令示例:
$Userslist = Import-CSV C:\Temp\Distribution-Groups-Members.csv
ForEach ($User in $Userslist)
{
Add-DistributionGroupMember -Identity "Sales France" -Member $User.PrimarySmtpAddress
}
场景 2 - 将“用户列表”添加到通讯组 |部门等于X的用户。
在此场景中,我们的任务是查找其部门为“销售”的所有用户,以及这些用户所属的名为“全球销售”的分发组
在我们的示例中,该组织有几个销售部门,例如美国销售部、英国销售部等。
为了满足此要求,我们通过执行执行过滤搜索的 PowerShell 命令来创建所需的用户列表。
PowerShell 过滤搜索将查找所有用户,其部门以字符串 Sales* 开头。
我们使用变量 $SalesUsers 来存储有关用户列表的信息。
在下一步中,我们运行 PowerShell 循环进程,该进程将使用存储在
变量 - $SalesUsers 中的信息,并添加存储在 $SalesUsers 中的每个成员分配给分销组全球销售的strong>变量。
将其部门为销售的所有用户添加到通讯组*
PowerShell 命令示例:
$SalesUsers = Get-User | Where {$_.Department -like "Sales*"}
foreach ($User in $SalesUsers)
{
Add-DistributionGroupMember -Identity "Sales worldwide" -Member $User.name
}
将用户(收件人)添加到多个通讯组(批量模式)
在下一节中,我们回顾不同场景的示例,它们的共同点是 - 需要同时将特定用户添加到“许多”或“多个”(数组)分发组。
这种场景可以描述为——一对多的关系。
场景1 |将用户(收件人)添加到多个通讯组 |手动提供每个通讯组的名称。
在本节中,我想回顾一下我们想要将特定用户作为成员添加到通讯组列表(数组)中的场景
有关“目标分发组”的信息将作为 PowerShell 命令的一部分写入,并存储在变量中。
- 我们想要添加为各个通讯组成员的用户是 - Brad。
我们使用的PowerShell命令包括两部分:
- 第 1#2 部分 - 在 PowerShell 命令的第一部分中,我们定义名为 - $GroupList 的 PowerShell 变量,它充当分发组“数组”的“逻辑容器”。换句话说,定义要添加用户的通讯组的列表。
第 2#2 部分 - 在 PowerShell 命令的第二部分中,我们使用“ForEach”PowerShell 语句来执行“循环过程”。 PowerShell“循环过程”指示PowerShell:
- “获取”$GroupList 中存储的信息
- “获取”列表中第一个通讯组的名称。
- 将用户名添加为通讯组的成员。
PowerShell 循环后,进程完成与“列表”中的“第一个分发组”相关的任务,PowerShell 循环进程从列表中的“第二个分发组”开始整个进程,直到“结束”或列表中的姓氏。
将用户(收件人)添加到多个通讯组
PowerShell命令语法:
$Variable = "<Distribution Group name>","<Distribution Group name>","<Distribution Group name>"
ForEach ($item in $Variable)
{Add-DistributionGroupMember -Identity $item -Member <Identity>}
PowerShell 命令示例:
$DistributionGroupsList = "Sales UK","Sales USA","Sales Italy"
ForEach ($item in $DistributionGroupsList)
{
Add-DistributionGroupMember -Identity $item -Member Bradp
-BypassSecurityGroupManagerCheck
}
场景2 |将用户(收件人)添加到多个通讯组 |使用 PowerShell 命令获取所有现有通讯组的列表。
在这种情况下,我们想要将特定用户添加到所有现有的通讯组中。
为了能够满足此要求,我们需要定义一个“数组”,其中包括所有可用的分发组。
分发组数组将按以下方式定义:
我们将使用名为 $ALLDistributionGroups 的变量,它将存储 PowerShell 命令 Get-Distribution group -resultsize unlimited 的输出。
在 PowerShell 命令的第二部分中,我们使用 ForEach PowerShell 语句,对结果执行“循环过程”(数组包括现有分发组的列表)。
我们使用的 PowerShell 语法的示例是:
将用户(收件人)添加到多个通讯组
PowerShell 命令示例:
$ALLDistributionGroups = Get-Distributiongroup -resultsize unlimited
ForEach ($item in $ALLDistributionGroups)
{
Add-DistributionGroupMember -Identity $item -Member Bradp
}
场景3 |将用户(收件人)添加到多个通讯组 |从 CSV 文件中读取有关通讯组列表的信息。
在此示例中,有关“通讯组列表”的信息存储在 CSV 文件中。从技术上讲,除了包含通讯组名称的特定列之外,CSV 文件还可以包含许多附加“信息列”。
在我们的具体示例中,包含通讯组名称的列名为“GroupName”。
值得一提的是,列标题名称不是“预定义名称”或强制名称。
相反,列名只是我们选择的任意名称。唯一的“限制”是标头名称不能包含任何空格。
- 在 PowerShell 命令的第一部分中,我们定义一个名为 $DistributionGroupsList 的变量,用于存储 CSV 文件(包含通讯组列表的 CSV 文件)的内容。
- PowerShell 命令的第二部分将“访问”GroupName 列中存储的信息。
将用户添加到 CSV 文件中列出的多个通讯组
PowerShell 命令示例:
$DistributionGroupsList = Import-CSV C:\Temp\Distribution-Group-list.csv
ForEach ($Group in $DistributionGroupsList)
{
Add-DistributionGroupMember -Identity $Group.GroupName -Member Brad
}
场景4 |将用户(收件人)添加到多个通讯组 |获取过去 X 小时内创建的通讯组列表。
在以下示例中,我们希望将用户 Brad 添加为过去 48 小时内创建的所有通讯组的成员。
- 第 1#2 部分 - 在 PowerShell 命令的第一部分中,我们定义名为 $AllNewDistributionGroups 的 PowerShell 变量。 $AllNewDistributionGroups 变量将存储 PowerShell 查询的输出,该查询“获取”所有“创建时间”小于或等于过去 40 小时的分发组。
- 第 2#2 部分 - 在 PowerShell 命令的第二部分中,我们使用“ForEach”PowerShell 语句,对结果执行“循环过程”。 PowerShell 命令将通过使用 $Group 变量与每个通讯组关联,该变量将使用通讯组对象的“name”属性。
将用户添加到过去 48 小时内创建的通讯组
PowerShell 命令示例:
$AllNewDistributionGroups = Get-DistributionGroup | Where {$_.WhenCreated -ge ((Get-Date).AddHours(-48))}
ForEach ($Group in $AllNewDistributionGroups)
{
Add-DistributionGroupMember -Identity $Group.name -Member Bradp
}
场景 5 - 仅当用户还不是通讯组的成员时才将用户添加到通讯组
在以下场景中,我们希望验证特定用户是否是通讯组的成员,如果该用户不是通讯组的成员,我们希望将该用户添加为通讯组的成员。
场景描述
- 我们要检查的用户是 - Bob。
- 分销组名称是 - Sales France。
为了能够满足这个要求,我们可以使用以下PowerShell命令
PowerShell 命令示例:
$Recipient = Get-Recipient -Identity bob
$Group = get-DistributionGroup -Identity 'Sales France'
$GetMember = Get-DistributionGroupMember $Group.name
if ($Group.name -notcontains $Recipient.Name)
{Add-DistributionGroupMember -Identity $Group.Name -Member $Recipient.Name}
当前文章系列的下一篇文章
- 在 Office 365 中使用 PowerShell 管理通讯组 |查看和导出有关通讯组的信息 |第 4 部分#5
猜你还喜欢
- 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