如何通过 userType = null 过滤用户?

Mat*_*tre 4 json microsoft-graph-api

我正在尝试过滤掉Guest图表查询中的用户。由于ne不支持比较运算符,我正在尝试$filter=userType eq 'Member' or userType eq null。但这也失败了。任何已知的解决方法来列出用户nullas 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"
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*eur 5

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

如果可以安全地假设本地用户不是来宾,则可以根据 Azure AD 用户是同步的还是云本机的来过滤他们。您可以通过查看该onPremisesSyncEnabled属性来做到这一点。对于同步用户来说,这将是true,对于云原生用户来说,这将是null

如果将此与userType属性结合起来,您可以使用以下命令有效地仅检索非来宾用户$filter

$filter=onPremisesSyncEnabled eq true OR userType eq 'Member'
Run Code Online (Sandbox Code Playgroud)

如果在Azure AD Connect中启用 UserType 同步,也可以完全避免这种情况。