如何使用ms-graph按指定的许可证过滤用户

时间:2017-04-23 22:06:38

标签: microsoft-graph

我正在尝试此请求:

https://graph.microsoft.com/v1.0/users?
$filter=assignedLicenses/any(d:d/skuid eq 28d45cd1-ad8b-15cd-a9e1-52e6a5c24328)

但是我收到了这个错误:

BadRequest - ')'或','预期在'assignedLicenses / any的第71位(d:d / skuid eq 28d45cd1-ad8b-15cd-a9e1-52e6a5c24328'。

我做错了吗?这个查询可能吗?

3 个答案:

答案 0 :(得分:2)

一般情况下,只有那些文档中所说的"支持$ filter"可以过滤。

E.g。在user对象上,可以过滤accountEnabled

由于assignedLicenses属性没有说出来,并且assignedLicense resource type没有在skuId属性上记录,我不认为你可以执行该查询。

答案 1 :(得分:1)

只需更新一下,它现在是受支持的API调用。正确的语法是:

https://graph.microsoft.com/v1.0/users?$filter=assignedLicenses/any(x:x/skuId eq e578b273-6db4-4691-bba0-8d691f4da603)

在此示例中,

e578b273-6db4-4691-bba0-8d691f4da603是学院A3 SKU

答案 2 :(得分:0)

我在GRAPH API的“测试版”上尝试了类似的方法。我需要按assignPlan进行过滤。

https://graph.microsoft.com/beta/users?&$filter=assignedPlans/any(d:d/service eq 'SharePoint')

这是我收到的错误消息:

{
"error": {
    "code": "Request_UnsupportedQuery",
    "message": "Complex query on property assignedPlans is not supported.",
    "innerError": {
        "request-id": "c3fad564-e61d-4066-8bef-548afghtyu",
        "date": "2018-12-10T16:43:36"
    }
}
}

因此,我想没有任何选项可以通过AssignedLicenses或Plan预先过滤用户。 至少还没有...