提取所有活动目录用户的属性

extract atrributes of all active directory users

我想使用 Node JS 提取活动目录用户的某些属性(例如电子邮件、phone 等)。根据这个documentation,我能够使用这段代码提取某个用户的属性:

var ActiveDirectory = require('activedirectory');

    var ad = new ActiveDirectory({ url: 'ldap://domain.com',
                               baseDN: 'dc=domain,dc=com',
                               username: 'user@domain.com',
                               password: 'password',
                               attributes: {
                                 user: [ 'givenName', 'mail', 'mobile' ],
                                //  group: [ 'anotherCustomAttribute', 'objectCategory' ]
                               }
                              });

    var sAMAccountName = 'desiredUsername';

    ad.findUser(sAMAccountName, function(err, user) {
        if (err) {
          console.log('ERROR: ' +JSON.stringify(err));
          return;
        }
       
        if (! user) console.log('User: ' + sAMAccountName + ' not found.');
        else console.log(JSON.stringify(user));
    });

现在我想知道如何提取所有活动目录用户的所需属性,考虑到一些用户没有组名这一事实。

是否可以提取活动目录中所有现有的sAMAccountName,并以此方式提取每个用户的属性?

使用 findUsers 代替 findUser

不包含过滤器,它将使用查找所有用户的默认过滤器:

ad.findUsers(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));
  }
});