我正在尝试创建一个批处理请求,以将用户添加为多个O365组的成员。 我正在尝试使用powershell创建JSON。并使用PSMSGraph模块提交请求。
foreach($AGM in $GraphUser.AddGuestMember){
$myRequest = [pscustomobject][ordered]@{
id = $requestID
method = "POST"
url = "/groups/$AGM/members/`$ref"
body = "@odata.idhttps://graph.microsoft.com/v1.0/users/$($GraphUser.GId)"
}
$myBatchRequests += $myRequest
$IDs += $requestID
$requestID ++
}
我正在使用以下循环将请求添加到数组中。填充数组后,我将其转换为JSON。
{
"requests": [
{
"id": 0,
"method": "POST",
"url": "/groups/be03ed64-639a-4620-b8a4-a025df70d131/members/$ref",
"body": "@odata.id:https://graph.microsoft.com/v1.0/users/c9fc90c3-8eaf-43f2-a27f-d8176e893635"
},
{
"id": 1,
"method": "POST",
"url": "/groups/58389709-0176-4da9-93c9-05eb797fc32a/members/$ref",
"body": "@odata.id:https://graph.microsoft.com/v1.0/users/c9fc90c3-8eaf-43f2-a27f-d8176e893635"
}
]
}
发布请求时,我遇到以下错误:
Invoke-GraphRequest:无法查询Uri'https://graph.microsoft.com/v1.0/ $ batch':远程服务器返回错误:(400)错误的请求。:{ “错误”:{ “ code”:“ BadRequest”, “ message”:“写入请求ID:0不包含Content-Type标头或正文。”, “ innerError”:{ “ request-id”:“ fdd0362b-c850-4f9f-b1a8-0020f60a1801”, “ date”:“ 2019-02-21T14:51:06” } } }
很可能是身体畸形。 有什么想法可以为BATCH请求以正确的格式创建正文吗?
谢谢!
答案 0 :(得分:1)
在请求中添加"headers":{"Content-Type":"application/json"}
答案 1 :(得分:0)
无需使用这种方法,有一个内置的powershell命令可将成员添加到组中,该命令本质上调用了azure广告图api。
请参阅:https://docs.microsoft.com/en-us/powershell/module/azuread/add-azureadgroupmember?view=azureadps-2.0
name='fileName' and trashed=false
如果要将用户添加到多个组,只需使用循环即可。