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

关于实现基于Active Directory匹配Name列批量同步用户邮箱至SharePoint列表新列的工作流问询

自动同步AD用户邮箱到SharePoint列表的解决方案

没问题,我来给你梳理几个靠谱的方案,既能自动同步AD邮箱到你的SharePoint列表,还能解决JSON导出的问题:

一、批量更新现有列表记录的工作流(一次性搞定历史数据)

用Power Automate(原Flow)来做批量处理最方便,步骤如下:

  • 创建一个即时触发的云流(手动触发即可)
  • 添加「获取项目」动作,选择你的目标SharePoint列表;如果列表项超过100条,记得在动作设置里开启「分页」,把阈值调到5000(平台支持的最大批量获取数)
  • 新增「应用到每一个」循环,选择「获取项目」返回的「值」(也就是每一条列表项)
  • 在循环内依次添加两个动作:
    1. 「获取用户配置文件(V2)」:用户标识符选当前项里Name列的Claims值(这是AD用户的唯一标识,能精准匹配到对应账号)
    2. 「更新项目」:选择你的列表,项目ID填当前循环项的ID,把新增的邮箱列设为「获取用户配置文件」返回的「邮件」字段
  • 保存流后手动触发一次,就能自动给所有现有记录补上邮箱了

二、自动同步新添加的记录(一劳永逸)

再建一个自动触发的流,处理后续新增的列表项:

  • 创建自动云流,触发条件选「当创建项目时」(指定你的目标SharePoint列表)
  • 同样添加「获取用户配置文件(V2)」,用户标识符选触发动作里Name列的Claims值
  • 最后加「更新项目」动作,把邮箱列同步为用户的邮件地址
  • 以后只要新增记录,邮箱就会自动从AD同步过来,完全不用手动操作

三、解决JSON导出显示邮箱的问题

你之前用JSON导出看不到邮箱,核心原因是默认导出不会自动带出人员列的隐藏属性(比如Email)。现在你把邮箱存在了单独的文本列里,只要导出时选中这个邮箱列,JSON里就会直接显示邮箱字符串了。
如果不想依赖单独列,也可以用SharePoint REST API获取带邮箱的数据,请求示例:

GET _api/web/lists/getbytitle('你的列表名')/items?$select=Title,Name/Email&$expand=Name

不过更简单的还是用我们前面设置的独立邮箱列,导出时直接包含它就行。

额外注意点

  • 确保Power Automate的连接账户有足够权限:能读写你的SharePoint列表,以及读取Azure AD用户信息的权限(一般默认账户都有,要是遇到权限问题,找租户管理员调整即可)
  • 如果Name列是允许多选的,记得在循环里遍历每个选中的用户,把邮箱用分号/逗号拼接后再填入邮箱列(要是邮箱列也支持多值,直接填数组就行)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:48:55