如何按userType = null过滤用户?

时间:2018-03-17 18:34:01

标签: json microsoft-graph

我正在尝试在我的图表查询中过滤掉Guest个用户。由于不支持ne比较运算符,我尝试使用$filter=userType eq 'Member' or userType eq null。但这也失败了。任何已知的解决方法都会将null列为userType的用户列为

如果不这样做,我每次需要下载大约一百万行,并在客户端丢掉四分之四,这是非常缓慢和浪费。

{
"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"
    }
}

2 个答案:

答案 0 :(得分:2)

作为一般经验法则,userType应为MemberGuest。例外情况是您同步本地Active Directory。由于userType是Azure AD属性,因此同步用户的值将为null

如果您可以放心地假设您的本地用户不是来宾,则可以根据他们是同步还是云原生来过滤Azure AD用户。您可以通过查看onPremisesSyncEnabled属性来执行此操作。对于已同步的用户,这将是true,对于云原生用户,它将为null

如果将其与userType属性结合使用,则可以使用以下$filter有效检索非访客用户:

$filter=onPremisesSyncEnabled eq true OR userType eq 'Member'

如果Enable synchronization of UserType Azure AD Connect ModiTect Maven plug-in,您也可以完全避免这种情况。

答案 1 :(得分:1)

截至 2021 年 6 月的更新

图上的 userType 现在支持 ne 比较运算符!因此,您现在可以通过以下查询获取不是来宾用户的用户:https://graph.microsoft.com/v1.0/users/$count?$filter=userType ne 'guest'

这是带有该查询的 graph explorer 链接