You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Power Automate导出Microsoft 365邮件安全组成员?

解决方案:Power Automate导出安全组成员及相关问题处理

1. 无需仅依赖PowerShell,Power Automate完全可以实现需求

你可以通过Power Automate的Azure AD连接器完成安全组成员导出,同时补充组别名和许可证信息,具体流程如下:

  • 触发方式:使用定时触发器(如每日/每周运行)实现非手动执行
  • 步骤1:筛选启用邮件的安全组
    调用Azure AD > 列出组动作,设置筛选条件为 mail ne null and securityEnabled eq true,精准过滤出启用邮件的安全组
  • 步骤2:批量获取组成员
    用Apply to each循环遍历上一步的组列表,调用Azure AD > 获取组的成员动作并传入对应组ID。注意:
    • 默认仅返回基础属性,需展开高级选项,在$select中指定需要的字段(如displayName,userPrincipalName)
    • 若组成员超过100人,需在动作设置中开启分页,阈值设为1000(最大支持值)避免漏取
  • 步骤3:补充组别名与许可证信息
    • 组别名:直接引用循环内组对象的mailNickname属性即可
    • 用户许可证:对每个成员调用Azure AD > 获取用户的许可证动作,提取skuPartNumber(如ENTERPRISEPACK对应E3许可证)等关键信息
  • 步骤4:导出结果
    用创建CSV表+保存到OneDrive/SharePoint,或Excel Online > 添加行到表格的方式导出最终数据

2. 仅导出自己一个用户的问题排查

出现这种情况大概率是以下原因:

  • 权限不足:检查Flow使用的连接账户是否拥有Azure AD目录读取者或更高权限(如全局读取者),低权限账户仅能读取自身信息
  • 筛选/参数错误:确认列出组的筛选条件未误选“我的组”,且获取组的成员传入的是目标组ID,而非仅包含你自己的测试组
  • 分页未开启:若组成员超过100人,默认仅返回前100条,恰好你的账户在首个分页内,就会出现仅导出自己的情况

3. 备选PowerShell自动化方案

如果Power Automate配置过于繁琐,可使用PowerShell脚本配合Azure自动化账户实现定时执行,示例脚本:

# 连接Azure AD
Connect-AzureAD

# 获取启用邮件的安全组
$targetGroups = Get-AzureADGroup -Filter "mail ne null and securityEnabled eq true"

# 遍历组导出成员及附加信息
foreach ($group in $targetGroups) {
    $members = Get-AzureADGroupMember -ObjectId $group.ObjectId -All $true
    $exportData = $members | Select-Object DisplayName, UserPrincipalName,
        @{Name="GroupAlias"; Expression={$group.MailNickname}},
        @{Name="LicenseSKUs"; Expression={$_.AssignedLicenses.SkuId -join ","}}
    $exportData | Export-Csv -Path "D:\Exports\$($group.DisplayName)_Members.csv" -NoTypeInformation -Encoding UTF8
}

内容的提问来源于stack exchange,提问作者MmVv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:45:06