如何使用NodeJS从ActiveDirectory获取“Manager”属性?

时间:2016-07-11 11:16:20

标签: node.js active-directory ldap

我正在使用“activedirectory”软件包从Active Directory获取用户信息,但我还需要获取更多用户管理器信息......

我使用的代码是:

var ActiveDirectory = require('activedirectory');
var ad = new ActiveDirectory('ldap://mydomain.com', 'dc=mydomain, dc=com', 'dragon@mydomain.com', 'dragon');
var query = 'cn=JohnS';
ad.findUsers(query, true, function(err, users) {
  if (err) {
    console.log('ERROR: ' +JSON.stringify(err));
    return;
  }

  if ((! users) || (users.length == 0)) console.log('No users found.');
  else {
    console.log('findUsers: '+JSON.stringify(users));
  }
});

我得到的回报是:

[
   {
      "dn": "CN=JohnS,OU=NorthWall,DC=mydomain,DC=com",
      "userPrincipalName": "JohnS@mydomain.com",
      "sAMAccountName": "JohnS",
      "whenCreated": "20160315093421.0Z",
      "pwdLastSet": "131123123123467132",
      "userAccountControl": "66048",
      "givenName": "JohnS",
      "cn": "JohnS",
      "displayName": "busterd",
      "groups": []
   }
]

我也想获得特定的用户信息管理员。

提前致谢, 最大

1 个答案:

答案 0 :(得分:0)

默认情况下,输出中的 manager 属性is not included,您需要创建ActiveDirectory实例

var ad = new ActiveDirectory(...,
             attributes: {
                 user: [ 'dn', 'userPrinicipalName', ..., 'manager' ]
             });

注意:如果覆盖'user'或'group'属性,则必须指定所需的所有属性,即如果要保留当前返回的所有属性,请将它们包含在user: [ ]中。< / p>

manager属性通常具有引用另一个用户的DN值,并且取决于您的要求,您可能需要解析它(例如从中提取sAMAccountName)或调用findUser()方法获取全名和经理的其他属性。