Node.js 如何通过“查找节点广告中的用户”;dn"';那块呢?
我想搜索整个用户,并通过他们的名字模式获取他们。我的对象结构是:Node.js 如何通过“查找节点广告中的用户”;dn"';那块呢?,node.js,active-directory,Node.js,Active Directory,我想搜索整个用户,并通过他们的名字模式获取他们。我的对象结构是: {"dn": "CN=Manager,OU=PH,OU=xxx HQ xxx,DC=xxx,DC=xxx", "userPrincipalName": "user1@domain.com", "sAMAccountName": "User1", "whenCreated": "20190517064007.0Z", "pwdLastSet": "0", "userAccountControl": "512", "sn": "Use
{"dn": "CN=Manager,OU=PH,OU=xxx HQ xxx,DC=xxx,DC=xxx",
"userPrincipalName": "user1@domain.com",
"sAMAccountName": "User1",
"whenCreated": "20190517064007.0Z",
"pwdLastSet": "0",
"userAccountControl": "512",
"sn": "User1",
"givenName": "User1",
"cn": "User1",
"displayName": "User nickname",
"groups": []}
我使用这个软件包-。功能:findUsers。
预期结果:找到所有具有 “CN=经理” 在他们的“dn”中 我已经尝试过其中一些查询:
dn=*CN=${managerName}*`
{dn:{filter:'*CN=${managerName}*'}}
{filter:'*CN=${managerName}*'}
{filter:{dn: '*CN=${managerName}*'}}
每次ldap返回空数组或指示查询中的错误时请注意,
dn
实际上不是Active Directory中的属性。我想你要的是distributedname
但不能在接受区分名称的任何属性中使用通配符。这包括区分名称
,成员
,管理者
,以及其他几个
看起来您只是想按帐户名搜索。您可以通过cn
属性进行搜索,如下所示:
(&(objectClass=user)(cn=*Manager*))
(anr=Michał Bednarz)
这将找到名称中包含Manager
的任何用户帐户。小心点。如果在开始时使用通配符,它将无法使用索引进行搜索。所以在我刚才给你的查询中,它必须搜索每个用户帐户才能找到匹配项。所以你能给出的标准越多越好
Active Directory还有一种称为的特殊搜索,专门用于在不知道全名的情况下查找用户。它会在多个属性中查找搜索词,如名字、姓氏和其他属性。例如,您可以进行如下搜索:
(&(objectClass=user)(cn=*Manager*))
(anr=Michał Bednarz)
而且它会找到你,即使你帐户上的显示名是米夏·贝德纳兹(Bednarz,Michał)
您还可以在此处阅读有关LDAP查询格式的内容:请注意,
dn
实际上不是Active Directory中的属性。我想你要的是distributedname
但不能在接受区分名称的任何属性中使用通配符。这包括区分名称
,成员
,管理者
,以及其他几个
看起来您只是想按帐户名搜索。您可以通过cn
属性进行搜索,如下所示:
(&(objectClass=user)(cn=*Manager*))
(anr=Michał Bednarz)
这将找到名称中包含Manager
的任何用户帐户。小心点。如果在开始时使用通配符,它将无法使用索引进行搜索。所以在我刚才给你的查询中,它必须搜索每个用户帐户才能找到匹配项。所以你能给出的标准越多越好
Active Directory还有一种称为的特殊搜索,专门用于在不知道全名的情况下查找用户。它会在多个属性中查找搜索词,如名字、姓氏和其他属性。例如,您可以进行如下搜索:
(&(objectClass=user)(cn=*Manager*))
(anr=Michał Bednarz)
而且它会找到你,即使你帐户上的显示名是米夏·贝德纳兹(Bednarz,Michał)
您还可以在此处阅读有关LDAP查询格式的内容: