当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 创建 M365 通讯组成员报告

作者:精品下载站 日期:2024-12-14 06:48:56 浏览:16 分类:玩电脑

使用 PowerShell 创建 M365 通讯组成员报告


使用 PowerShell 可以更好地完成某些任务,例如创建 Microsoft 365 中所有通讯组(包括组成员)的报告。不幸的是,Microsoft 365 或 Exchange Online 管理中心没有允许您执行此操作的“内置”方法。

在本教程中,我将向您展示如何使用我的脚本通过 Exchange Online PowerShell 模块创建有关所有通讯组和成员的报告。该报告如下所示,每个成员占一行,其中包含成员类型、组显示名称和组地址。如果用户出现在多个组中,则新行将代表每个组中的这些成员资格。

先决条件

本教程中的脚本使用 Exchange Online PowerShell 模块。该模块包含连接到 Exchange Online 并生成所需信息所需的命令。

为了安装 Exchange Online PowerShell 模块,我编写了一个单独的教程,您可以在此处访问:如何使用 PowerShell 连接到 Exchange Online。

创建通讯组和成员报告的脚本

下面是完整的脚本,我建议您在运行之前先将其复制并粘贴到文本编辑器或 PowerShell ISE 中。您将在驱动器上的 C:\temp 文件夹中找到结果。

<# Version: 1.0
Author: Daniel Bradley (https://www.linkedin.com/in/danielbradley2/)
Website: https://ourcloudnetwork.com/
#> 

#Connect to Exchange Online
Connect-ExchangeOnline

#Create report array object
$Report = [System.Collections.Generic.List[Object]]::new()

#Get all groups
$GroupList = Get-DistributionGroup

#Generate report
Foreach ($group in $grouplist) {
    $groupmembers = $null
    $groupmembers = Get-DistributionGroupMember -Identity $group.Name
    Foreach ($member in $groupmembers) {
        $obj = [PSCustomObject][Ordered]@{  
         "Member"                 = $member.PrimarySmtpAddress
         "Member Type"            = $Member.RecipientType
         "Group"                  = $Group.DisplayName
         "Group Address"          = $Group.PrimarySmtpAddress
         }
    $Report.Add($obj)
    }
}

#Export report
$Report | Export-CSV -path "C:\temp\distribution-group-report.csv" -NoTypeInformation

结果

该报告将以 CSV 格式生成,最好直接在 Microsoft Excel 中打开。它将如下所示:

[玩转系统] 使用 PowerShell 创建 M365 通讯组成员报告

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯