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

使用GraphClient设置Microsoft 365组自定义属性报错,求解决方法

解决Microsoft 365组自定义属性设置的BadRequest错误

你遇到的Request_BadRequest错误,核心原因是错误地使用了AdditionalData来设置自定义属性。Microsoft 365组的CustomAttribute1到CustomAttribute15属于onPremisesExtensionAttributes这个嵌套属性组,不能直接通过顶级的AdditionalData来赋值,必须直接操作这个嵌套对象。

正确的实现方式

根据需求不同,有两种常用的实现方案:

方案一:仅更新目标自定义属性(不保留其他属性值)

如果不需要保留其他自定义属性的现有值,可以直接构造包含onPremisesExtensionAttributes的Group对象进行更新:

var updatedGroup = new Microsoft.Graph.Group
{
    OnPremisesExtensionAttributes = new OnPremisesExtensionAttributes
    {
        CustomAttribute5 = "Works!"
    }
};

await graphClient.Groups["xxx"]
    .Request()
    .UpdateAsync(updatedGroup);

方案二:保留其他自定义属性值

如果需要保留其他自定义属性的现有内容,建议先获取组的当前属性信息,修改目标属性后再提交更新:

// 先获取组的现有自定义属性信息(仅请求需要的字段,提升性能)
var existingGroup = await graphClient.Groups["xxx"]
    .Request()
    .Select(g => new { g.OnPremisesExtensionAttributes })
    .GetAsync();

// 修改目标自定义属性,保留其他属性的原有值
existingGroup.OnPremisesExtensionAttributes.CustomAttribute5 = "Works!";

// 提交更新
await graphClient.Groups["xxx"]
    .Request()
    .UpdateAsync(existingGroup);

额外注意事项

  • 确保你的应用已被授予足够的权限:比如Group.ReadWrite.All或Directory.ReadWrite.All权限,并且完成了正确的授权流程。
  • 如果你是从本地AD同步的组,自定义属性的更新可能会被AD同步覆盖,这种情况下需要在本地AD中修改后再同步到云。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:22:38