[玩转系统] 使用 PowerShell 导出通讯组和成员
作者:精品下载站 日期:2024-12-14 05:51:13 浏览:13 分类:玩电脑
使用 PowerShell 导出通讯组和成员
您可以从 Microsoft 365 管理中心导出通讯组信息,但它不会显示所有详细信息。使用 PowerShell,可以更快地将通讯组的详细数据导出到 CSV 文件。在本文中,您将了解如何使用 PowerShell 导出通讯组和成员。
连接到 Exchange Online
为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。以管理员身份打开 Windows PowerShell,运行以下 cmdlet,然后使用您的管理员凭据登录。
Connect-ExchangeOnline
查看通讯组列表和成员
我们将展示如何在 PowerShell 输出中显示有关通讯组的信息。请记住,您可以在 PowerShell 控制台上显示的所有信息也可以导出到 CSV 文件。
显示通讯组列表
让我们获取所有现有(安全)通讯组的列表及其信息。要查看现有通讯组或启用邮件的安全组,请使用 Get-DistributionGroup cmdlet。
Get-DistributionGroup -ResultSize Unlimited
PowerShell 输出示例:
Name DisplayName GroupType PrimarySmtpAddress
---- ----------- --------- ------------------
Sales Employees Sales Employees Universal [email protected]
Sales UK Sales UK Universal [email protected]
Sales USA Sales USA mail list Universal [email protected]
显示通讯组成员
您可以显示所有现有通讯组的成员。
请参阅下面的 PowerShell 命令语法。
Get-DistributionGroupMember -ResultSize Unlimited "Distribution Group"
运行以下 PowerShell 命令示例。
Get-DistributionGroupMember -ResultSize Unlimited "[email protected]"
PowerShell 输出显示成员的身份。
Name RecipientType
---- -------------
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 UserMailbox
显示通讯组成员详细信息
要获取有关特定通讯组成员的扩展信息,我们需要使用 PowerShell cmdlet Get-DistributionGroupMember。我们将对结果进行排序并显示有关成员 DisplayName、Alias 和 Department 的以下信息。
PowerShell 命令示例:
Get-DistributionGroupMember -ResultSize Unlimited "[email protected]" | Sort -Property DisplayName | Select-Object DisplayName, Alias, Department
PowerShell输出结果:
DisplayName Alias Department
----------- ----- ----------
Brenda Smith Brenda.Smith
David Kent David.Kent Sales
统计通讯组成员的数量
您还可以查看特定通讯组拥有的成员数量。
请参阅下面的 PowerShell 命令语法。
(Get-DistributionGroupMember -ResultSize Unlimited "Distribution Group").Count
运行以下 PowerShell 命令示例。
(Get-DistributionGroupMember -ResultSize Unlimited "[email protected]").Count
它将在 PowerShell 输出中显示成员数量。
获取特定用户的通讯组成员身份
您还可以了解特定用户拥有多少会员资格。
- 在第一行输入用户的身份
- 运行以下 PowerShell 脚本
$User = "[email protected]"
$UserDisplayName = (Get-User $User).Name
"The user " + $User + " is a member of the following Distribution Groups:"
foreach ($DistributionGroup in Get-DistributionGroup -ResultSize Unlimited) {
if ((Get-DistributionGroupMember $DistributionGroup.PrimarySmtpAddress | Select-Object -ExpandProperty Name) -contains $UserDisplayName) {
$DistributionGroup.PrimarySmtpAddress
}
}
PowerShell 输出结果显示他们是哪个通讯组的成员。
The User [email protected] is a member of the following Distribution Groups:
[email protected]
[email protected]
在我们的示例中,用户 Brenda 是两个通讯组的成员。
显示具有特定电子邮件域的通讯组列表
查看特定域的通讯组列表。如果您有许多通讯组并希望将其范围缩小到特定域,这非常有用。
请参阅 PowerShell 命令语法。
Get-DistributionGroup -ResultSize Unlimited -Filter {EmailAddresses -like "*Domain Name"} | ft -Property Name, Alias, EmailAddresses -Autosize
在我们的示例中,我们想要显示电子邮件地址包含域名 a-d.site 的通讯组列表
运行 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited -Filter {EmailAddresses -like "*a-d.site*"} | ft -Property Name, Alias, EmailAddresses -Autosize
PowerShell 输出显示以下结果。
Name Alias EmailAddresses
---- ----- --------------
Sales Employees Sales.Employees {SMTP:[email protected], smtp:[email protected]}
Sales UK SalesUK {SMTP:[email protected], smtp:[email protected]}
Sales USA SalesUSA {SMTP:[email protected], smtp:[email protected], smtp:[email protected]}
显示特定日期范围内的通讯组
您可以获得在特定日期、时间或时间范围内创建的通讯组的列表。
- 我们想要将用户添加到在特定时间范围(过去两周)内创建的所有新通讯组中
- 我们想要将用户添加到在特定时间范围(最近两周之前)创建的所有通讯组中
要了解特定通讯组的创建时间,我们可以查询WhenCreated。要查找属于特定时间范围(例如最近两周或当前两周之前的时间)的分发组,我们需要使用PowerShell逻辑运算符。
在我们的示例中,我们创建两个 PowerShell 查询,它们将使用以下运算符 -ge 和 -le,并获取以下信息:
- 获取过去 2 周内创建的通讯组的列表。为此,我们使用 PowerShell 运算符 -ge(大于或等于)。
- 获取过去 2 周之前创建的通讯组的列表。为此,我们使用 PowerShell 运算符 -le(小于或等于)。
要定义两周的时间范围,我们将按以下方式使用 PowerShell cmdlet Get-Date:(Get-Date).AddDays(-14)。
获取过去 2 周内创建的通讯组
获取过去 14 天内创建的通讯组的列表。
运行以下 PowerShell 示例。
Get-DistributionGroup -ResultSize Unlimited -Filter "WhenCreated -ge '$((Get-Date).AddDays(-14))'" | Format-Table DisplayName, WhenCreated
查看PowerShell输出结果。
DisplayName WhenCreated
----------- -----------
Sales Employees 25/08/2023 23.07.36
Sales UK 07/09/2023 11.53.47
Sales USA mail list 07/09/2023 10.00.12
获取过去 2 周之前创建的通讯组
获取过去 14 天之前创建的通讯组的列表。
运行以下 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited -Filter "WhenCreated -le '$((Get-Date).AddDays(-14))'" | Format-Table DisplayName, WhenCreated
PowerShell 输出结果显示过去两周之前创建的所有通讯组的列表。
DisplayName WhenCreated
----------- -----------
Sales Employees 25/08/2023 23.07.36
显示特定所有者管理的所有通讯组
获取由特定名称管理的所有通讯组的列表。仅查看该特定名称为所有者的通讯组。
在我们的示例中,它将显示所有者包含单词 Amanda 的所有通讯组。
- 在星号 (*) 之间输入身份名称
- 运行以下 PowerShell 脚本
$users = Get-User -Identity *amanda*
foreach ($user in $users) {
$userPrincipalName = $user.UserPrincipalName
$displayName = $user.DisplayName
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.ManagedBy -like "*$($user.Identity)*" } |
Select-Object DisplayName, PrimarySmtpAddress,
@{Name = 'UserPrincipalName'; Expression = { $userPrincipalName } },
@{Name = 'UserDisplayName'; Expression = { $displayName } }
}
PowerShell 输出显示属于 Amanda 的所有通讯组。
DisplayName PrimarySmtpAddress UserPrincipalName UserDisplayName
----------- ------------------ ----------------- ---------------
Sales Germany [email protected] [email protected] Amanda Hansen
Sales Germany [email protected] [email protected] Amanda Hansen
Sales France [email protected] [email protected] Amanda Morgan
显示单个通讯组的所有所有者
您可以显示特定通讯组拥有哪些所有者。
运行以下 PowerShell 命令以显示特定通讯组的所有者。
$group = Get-DistributionGroup -ResultSize Unlimited -Filter "PrimarySmtpAddress -eq '[email protected]'"
$managedBy = $group.ManagedBy | Get-User
$managedBy | Select-Object DisplayName, Identity
PowerShell 输出显示所有所有者的对象 ID。
DisplayName Identity
----------- --------
Brenda Smith 0f38d53f-cbe0-4844-86e9-1032a45ba31b
George Wilson 67962421-00e7-448b-b382-83b7b434e41c
Amanda Hansen 41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5
Ken Walker 12eefbb2-e5f4-4eec-bd18-df7ca2f1ee6b
显示所有具有主持人的通讯组
并非所有通讯组都有主持人,因为默认情况下没有设置。主持人可以批准或拒绝发送到通讯组的邮件。
- 显示所有现有通讯组(有或没有主持人)的列表
运行以下 PowerShell 命令示例:
Get-DistributionGroup -ResultSize Unlimited | ft DisplayName, ModeratedBy
PowerShell输出结果:
DisplayName ModeratedBy
----------- -----------
Sales Employees {}
Sales UK {41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5, eec2668a-0773-4947-93ba-2223f6acfe55}
Sales USA mail list {}
- 显示具有管理员的所有通讯组的列表
运行以下 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited -Filter 'ModeratedBy -ne $null' | ft DisplayName, ManagedBy
PowerShell 输出显示以下结果。
DisplayName ManagedBy
----------- ---------
Sales UK {41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5, eec2668a-0773-4947-93ba-2223f6acfe55}
显示从本地 Active Directory 同步的所有通讯组
运行以下 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.IsDirSynced -eq $true } | ft DisplayName, IsDirSynced
显示通讯组传递管理设置
术语传递管理与可以向通讯组发送邮件的用户相关。发件人有两种类型:
- 内部发件人(组织收件人),被描述为经过身份验证的收件人
- 外部发件人(非组织收件人),被描述为未经身份验证的收件人
当您创建新的通讯组时,选项仅允许来自组织内部人员的邮件处于启用状态。定义此选项的参数是-RequireSenderAuthenticationEnabled。
默认情况下,参数 -RequireSenderAuthenticationEnabled 的值设置为 $True。只有组织内部的人员才能向通讯组发送邮件。
您还可以允许组织外部的人员向通讯组发送消息。参数-RequireSenderAuthenticationEnabled的值应设置为$False。
我们将显示已启用或禁用外部发件人的所有通讯组的列表。
运行 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited | ft DisplayName, RequireSenderAuthenticationEnabled
PowerShell 输出结果。
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Mail security False
Sales Employees False
Sales France True
Sales Germany True
Sales Norway True
Sales Spain True
Sales Sweden True
Sales UK False
Sales USA mail list False
显示接受来自外部收件人的电子邮件的通讯组
仅查看接受外部收件人发送电子邮件的通讯组列表。
运行 PowerShell 命令示例。
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.RequireSenderAuthenticationEnabled -eq $True } | ft DisplayName, RequireSenderAuthenticationEnabled
请参阅下面的 PowerShell 输出结果。
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Sales UK True
显示不接受来自外部收件人的电子邮件的通讯组
我们将仅显示不允许组织外部的人员(外部收件人)向该组发送电子邮件的通讯组列表。
运行以下 PowerShell 命令:
Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.RequireSenderAuthenticationEnabled -eq $False } | ft DisplayName, RequireSenderAuthenticationEnabled
PowerShell输出结果:
DisplayName RequireSenderAuthenticationEnabled
----------- ----------------------------------
Sales Employees False
Sales USA mail list False
将包括成员的通讯组列表导出到 CSV
我们将向您展示如何导出作为 PowerShell 输出结果显示的所有信息。您可以以以下文件格式导出 PowerShell 输出:文本、CSV、HTML 和 XML。
要将 PowerShell 命令输出导出为 CSV(逗号分隔值)文件格式,我们可以添加其他参数,例如:
- -NoTypeInformation:它可以防止PowerShell向CSV文件添加不必要的信息
- -编码UTF8:可以导出所有非英文字符,例如中文或阿拉伯语
您需要添加导出数据的路径,这意味着您必须创建一个特定文件夹 (temp) 并将其保存在 (C:) 驱动器中。没有 PowerShell 命令会创建路径中指定的特定文件夹。
设置完成后,我们将向您展示如何将通讯组列表信息导出到各种文件类型。
- 将信息导出到 CSV 文件 PowerShell 命令示例:
Get-DistributionGroup -ResultSize Unlimited | Export-CSV "C:\temp\DistributionGroups.csv" -NoTypeInformation -Encoding UTF8
- 将信息导出到文本文件 PowerShell 命令示例:
Get-DistributionGroup -ResultSize Unlimited | Out-File "C:\temp\DistributionGroups.txt"
- 将信息导出到 HTML 文件 PowerShell 命令示例:
Get-DistributionGroup -ResultSize Unlimited | ConvertTo-Html | Out-File "C:\temp\DistributionGroups.html"
将包含成员的单个通讯组列表导出为 CSV
您可以导出特定通讯组的所有成员的信息。
在我们的示例中,我们希望导出通讯组 Sales UK 的所有成员。
Get-DistributionGroupMember -ResultSize Unlimited -Identity "Sales UK" | Select-Object DisplayName, PrimarySmtpAddress, ExternalEmailAddress, Alias | Export-Csv "C:\temp\DistributionGroupMembers.csv" -NoTypeInformation -Encoding UTF8
它将把 CSV 文件导出到 C:\temp 文件夹。使用 Microsoft Excel 打开 CSV 文件以查看结果。
下图显示了 CSV 文件示例,其中包含通讯组 Sales UK 的所有组成员(包括联系人)。
将所有通讯组(包括成员)的列表导出到 CSV
您可以将所有通讯组成员的列表导出到单个 CSV 文件。
运行 PowerShell 脚本。
$Groups = Get-DistributionGroup -ResultSize Unlimited
# Initialize an array to store the data
$data = @()
foreach ($Group in $Groups) {
$Members = Get-DistributionGroupMember -ResultSize Unlimited -Identity $Group.PrimarySmtpAddress
foreach ($Member in $Members) {
if ($Member.PrimarySmtpAddress) {
$Recipient = Get-Recipient -Identity $Member.PrimarySmtpAddress
$data += [PSCustomObject]@{
GroupName = $Group.DisplayName
GroupPrimarySmtpAddress = $Group.PrimarySmtpAddress
MemberDisplayName = $Member.DisplayName
MemberPrimarySmtpAddress = $Member.PrimarySmtpAddress
RecipientType = $Recipient.RecipientType
MemberAlias = $Recipient.Alias
}
} else {
$data += [PSCustomObject]@{
GroupName = $Group.DisplayName
GroupPrimarySmtpAddress = $Group.PrimarySmtpAddress
MemberDisplayName = $Member.DisplayName
MemberPrimarySmtpAddress = "-"
RecipientType = "-"
MemberAlias = "-"
}
}
}
}
# Export the data to a CSV file
$data | Export-Csv -Path "C:\temp\AllDistributionGroupMembers.csv" -NoTypeInformation -Encoding UTF8
它将把 CSV 文件导出到 C:\temp 文件夹。使用 Microsoft Excel 打开 CSV 文件以查看结果。
最终结果显示所有通讯组的列表,包括其成员和组织中的联系人。
了解更多:将 Microsoft 365 邮箱导出到 PST 文件 »
结论
您学习了如何使用 PowerShell 导出通讯组和成员。获取所有通讯组(包括其成员)的详细列表,并将其导出到 CSV 文件。使用 PowerShell,您可以自定义并创建您自己的有关所有通讯组的详细报告。
您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 导出 Microsoft 365 邮箱大小报告。不要忘记关注我们并分享这篇文章。
猜你还喜欢
- 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