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

调用Graph API为AAD用户分配经理返回400错误该如何解决?

错误原因
  • URI解析异常:PowerShell双引号内的$ref会被识别为本地变量自动替换为空,最终请求的URI不符合接口要求,触发400错误。
  • 请求体字段错误:$ref类型接口要求请求体必须携带@odata.id字段,而非你使用的id字段。
  • 字段值格式错误:你填写的ID前多了无效的string 前缀,且该字段需要传入经理用户的完整Graph资源路径,不能仅传入ID。
  • 哈希表键未转义:PowerShell中以@开头的哈希表键需要用引号包裹,否则会被识别为 splatting 语法抛出错误。
修正后的代码
$Header = @{
    Authorization = "$($Request.token_type) $($Request.access_token)"
}

$bodyProcess = @{
    # 键必须加引号包裹,值为经理用户的完整资源路径,替换为实际的经理用户ID即可
    '@odata.id' = "https://graph.microsoft.com/v1.0/users/aa9999a1-1111-11a2-abab-asfdas32"
}

$body = $bodyProcess | ConvertTo-Json

# URI用单引号包裹,避免$ref被PowerShell解析为变量
$Uri = 'https://graph.microsoft.com/v1.0/users/4d5f6c5a-0e69-40b6-a86d-e825582add50/manager/$ref'
$UserData = Invoke-RestMethod -Uri $Uri -Headers $Header -Method PUT -ContentType "application/json" -Body $Body
额外注意事项
  • 需确保请求使用的令牌包含User.ReadWrite.All或Directory.ReadWrite.All权限,权限类型需和调用场景匹配:委托权限适用于有用户登录的交互场景,应用权限适用于无用户的后台服务场景。
  • 若使用全局管理员角色操作,无需额外授权也可完成该操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:06:03