我正在尝试在我的图表查询中过滤掉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"
}
}
答案 0 :(得分:2)
作为一般经验法则,userType
应为Member
或Guest
。例外情况是您同步本地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 链接