使用 PowerShell 将 Microsoft 365 组报告导出为 CSV
作为管理员,监控群组及其成员资格是日常任务之一。大多数管理员更喜欢 PowerShell 而不是 Microsoft 管理中心,以便更好地进行自定义。因此,让我们在本博客中了解如何使用 PowerShell 获取 Microsoft 365 组报告。
PowerShell 有多个 cmdlet,例如 Get-MSolGroup、Get-AzureADGroup、Get- UnifiedGroup、Get-DistributionGroup、Get-MgGroup 用于获取组信息。您是否对选择正确的感到困惑?不要害怕!我们是来帮你的。我们创建了一个一体化 PowerShell 脚本,用于将群组及其成员详细信息导出到 CSV 文件。
使用单个脚本,您可以借助高级过滤选项生成多个组报告。以下是一些示例报告,
- 所有小组报告
- 所有群组成员资格报告
- 获取单个/群组列表的群组报告(通过 CSV 导入)
- 获取单个/一组群组的群组成员资格(通过 CVS 导入)
- Microsoft 365 安全组报告
- Microsoft 365 安全组成员身份报告
- 分布组报告
- 通讯组成员报告
- 启用邮件的安全组报告
- 启用邮件的安全组成员身份报告
- 空群组报告(无成员报告的群组)
- 群组规模报告(基于成员计数报告的群组报告)
下载脚本:M365GroupReport
脚本的其他亮点:
- 该脚本使用Microsoft Graph PowerShell。
- 该脚本也可以使用基于证书的身份验证 (CBA) 来执行。
- 将报告结果导出为 CSV。
- 您可以根据成员类型(例如用户、群组、联系人等)获取成员计数。
- 该脚本调度程序友好。
- 最重要的是,该脚本将输出导出到格式良好的 2 个 CSV 文件。一份包含群组信息,另一份包含详细的群组成员信息。
Microsoft 365 组报告 PowerShell 脚本 - 执行步骤:
方法1: 使用管理员帐户执行脚本
要查看所有组及其成员的信息,请运行以下脚本:
./M365GroupReport.ps1
脚本执行后,两个输出文件将在执行目录中可用。
方法2:使用证书执行PowerShell脚本
要使用基于证书的身份验证运行脚本,请使用以下格式
.\M365GroupReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <Certthumbprint>您还可以使用上述格式将 PowerShell 脚本作为 Windows 任务计划程序中的计划任务运行。
注意:要使用 CBA,您必须在 Azure AD 中注册应用。要获取有关注册 Azure 应用程序和证书的更多详细信息,可以参阅使用证书连接 MS Graph PowerShell 博客。您可以按照手动步骤操作,也可以根据您的要求自动执行该过程(通过准备运行的脚本)。
Microsoft 365 组报告:
Microsoft 365 群组报告包含以下列:群组名称、电子邮件地址、群组类型、群组成员计数和按类型划分的成员计数。
小组报告类似于下面的屏幕截图:
Microsoft 365 组成员报告:
Microsoft 365 群组成员资格报告包含以下列:群组名称、群组电子邮件地址、成员名称、成员电子邮件和成员类型。群组成员类型有助于识别成员类型,例如用户、群组和联系人。
小组成员报告类似于下面的屏幕截图:
Microsoft 365 组报告脚本的更多用例:
如前所述,该脚本支持高级过滤参数以根据您的要求获取报告。
将所有 Microsoft 365 群组和成员资格导出为 CSV:
要导出所有 Microsoft 365 组,请执行以下脚本:
./M365GroupReport.ps1导出的报告包含所有组类型,例如通讯组列表、安全组、启用邮件的安全组和统一组。
通过参考此报告,管理员可以在群组中添加或删除用户。
获取单个/群组列表的成员:
您可以使用 -< i>GroupIDsFile 参数,用于从名为“GroupId.txt”的输入列表中获取特定群组的报告,并将所有成员资格导出为 CSV。
要获取特定群组的群组报告和成员资格报告,请传递带有群组 GUID 的输入文件。
./M365GroupReport.ps1 -GroupIDsFile C:/GroupId.txtGroupIDsFile 必须遵循以下格式:组标识由换行符分隔,不带标头。
群组规模报告:
该报告可帮助您获取成员数量超过“N”的群组。要获取此报告,您可以使用-执行脚本MinGroupMembersCount 参数。
./M365GroupReport.ps1 -MinGroupMembersCount 50
上述脚本会导出成员超过 50 人的所有群组。
注意:如果您想根据特定条件确定群组成员资格(即成员数量),您可以使用动态群组成员资格报告。
Microsoft 365 安全组报告:
安全组用于授予对 Microsoft 365 资源的访问权限。要导出安全组报告,您可以使用 -Security 参数运行脚本。
./M365GroupReport.ps1 -Security通过引用群组成员资格报告,您可以查看拥有 SharePoint 网站和 CRM Online 权利和访问权限的用户。
分发列表报告:
通讯组列表用于向一组人发送通知。要导出通讯组及其成员资格,您可以使用-DistributionList 参数。
./M365GroupReport.ps1 -DistributionList上面的脚本列出了所有通讯组及其成员的信息。
注意:报告将 Microsoft 365 群组(群组邮箱)列为通讯组列表。
您还可以在通讯组成员报告中查看我们的专用脚本,以获得更详细的报告。
启用邮件的安全组报告:
这种类型的组充当常规安全性,并且能够向其成员发送邮件。要获取所有启用邮件的安全组的列表,请使用 -MailEnabledSecurity 参数。
./M365GroupReport.ps1 -MailEnabledSecurity该脚本将启用邮件的安全组信息和成员资格导出到 CSV 文件。
获取空组报告:
要获取空群组报告(即没有成员的群组),请使用 -< 执行脚本em>IsEmpty 参数。
./M365GroupReport.ps1 -IsEmpty通过参考此报告,您可以删除租户中未使用/不活动的组。
安排定期运行组报告:
如前所述,该脚本对于调度程序是友好的。您可以将凭据作为参数传递。因此,在执行过程中不会提示输入用户名和密码。
./M365GroupReport.ps1 -UserName admin@contoso.com -Password XXX您可以使用 Windows 任务计划程序来执行 PowerShell 计划任务。
获取更详细的群组报告:
要导出更精细的组报告,您可以使用多个过滤器(即参数和开关)。我在下面举了几个例子。
- 要获取空通讯组,
./M365GroupReport.ps1 -IsEmpty -DistributionList- 要查看空安全组,
./M365GroupReport.ps1 -IsEmpty -Security- 要列出空的启用邮件的安全组,
./M365GroupReport.ps1 -IsEmpty -MailenabledSecurity- 要获得大型通讯组,
./M365GroupReport.ps1 -DistributionList -MinGroupMembersCount 500- 要根据成员数量获取安全组,
./M365GroupReport.ps1 -Security -MinGroupMembersCount 50当您想要向多人授予访问权限/发送信息时,Microsoft 365 群组会很有帮助。将人员添加到群组中会自动授予他们所需的权限。除了群组之外,当多人想要访问同一邮箱时,您还可以使用共享邮箱成员资格。
获取更详细的群组报告:
获得更详细的小组报告
团体类型
- 保安组
- 分布组
- 启用邮件的安全组
- Microsoft 365 组
- 动态通讯组
团体会员
- 直接会员
群组创建源码
- 通过 Teams 创建的组
您可以查看 AdminDroid Microsoft 365 报告和审核工具。
AdminDroid 提供1500+ 预构建报告和 20 个具有视觉吸引力的智能仪表板,让您一目了然地了解您的 Office 365 环境。该工具提供有关 Office 365 报告、审计、分析、使用统计、安全性和合规性等的报告。
此外,AdminDroid 完全免费提供超过100 多个报告和仪表板。它包括有关用户、许可证、组、组成员、设备、登录活动、密码更改、许可证更改等的报告。免费版在自定义、计划和导出等报告功能上没有任何限制。下载 AdminDroid 提供的免费 Office 365 报告工具,看看它如何为您提供帮助。
我希望此博客能够帮助您管理组织中的群组成员资格。






