Json 如何按userType=null筛选用户?
我正在尝试筛选出图形查询中的Json 如何按userType=null筛选用户?,json,microsoft-graph-api,Json,Microsoft Graph Api,我正在尝试筛选出图形查询中的Guest用户。由于不支持ne比较运算符,因此我尝试使用$filter=userType eq'Member'或userType eq null。但这也失败了。将null用户列为userType的任何已知变通方法 如果没有这些,我每次需要下载大约一百万行,然后在客户端扔掉5行中的4行,这是非常缓慢和浪费的 { "error": { "code": "Request_UnsupportedQuery", "message": "Unsupported o
Guest
用户。由于不支持ne
比较运算符,因此我尝试使用$filter=userType eq'Member'或userType eq null
。但这也失败了。将null
用户列为userType
的任何已知变通方法
如果没有这些,我每次需要下载大约一百万行,然后在客户端扔掉5行中的4行,这是非常缓慢和浪费的
{
"error": {
"code": "Request_UnsupportedQuery",
"message": "Unsupported or invalid query filter clause specified for property 'userType' of resource 'User'.",
"innerError": {
"request-id": "411f7927-c3af-4042-a619-eee1c88971a0",
"date": "2018-03-17T18:28:35"
}
}
一般来说,
userType
应该是Member
或Guest
。例外情况是当您在prem Active Directory上同步时。由于userType
是Azure AD属性,同步用户的值将为null
如果您可以安全地假设您的on-prem用户不是来宾,那么您可以根据Azure AD用户是同步用户还是云本地用户来过滤他们。您可以通过查看onpremissesyncenabled
属性来完成此操作。对于同步用户,这将是true
,对于云本地用户,这将是null
如果将其与userType
属性结合使用,则可以使用以下$filter
有效地仅检索非来宾用户:
$filter=onPremisesSyncEnabled eq true OR userType eq 'Member'
如果你愿意,你也可以完全避免这种情况 自2021年6月起更新
ne
比较运算符现在在图形上的userType上受支持!因此,您现在可以通过以下查询获取非来宾用户:https://graph.microsoft.com/v1.0/users/$count?$filter=userType ne'guest'
这里有一个链接,指向该查询对于任何想要依赖此筛选器的人,我遇到过这样的情况:对于普通用户,
onpremissesyncenabled
和userType
都设置为null。