2016-07-11 7 views
1

Iの使用があるコードを、私はActive Directoryからユーザーの情報を取得するには、「ActiveDirectoryの」パッケージを使用していますが、私はあまりにも多くのユーザーのマネージャーの情報を取得する必要があります...NodeJSでActiveDirectoryから "Manager"プロパティを取得する方法は?

var ActiveDirectory = require('activedirectory'); 
var ad = new ActiveDirectory('ldap://mydomain.com', 'dc=mydomain, dc=com', '[email protected]', '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": "[email protected]", 
     "sAMAccountName": "JohnS", 
     "whenCreated": "20160315093421.0Z", 
     "pwdLastSet": "131123123123467132", 
     "userAccountControl": "66048", 
     "givenName": "JohnS", 
     "cn": "JohnS", 
     "displayName": "busterd", 
     "groups": [] 
    } 
] 

私はあまりにもユーザー情報の特定のマネージャを取得したいと思います。

ありがとうございます。 デフォルトでは

答えて

0

、出力のマネージャー属性is not included、あなたは

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

注意としてあなたのActiveDirectoryのインスタンスを作成する必要があります。「ユーザー」または「グループ」属性を上書きした場合、あなたはALLを指定する必要があります。つまり、現在返されているすべての属性を保持する場合は、user: [ ]に含めます。

通常、manager属性には別のユーザーに参照されるDN値があり、要件に応じて解析する必要があります(たとえば、sAMAccountNameを抽出するなど)か、findUser()メソッドを呼び出して完全マネージャーの名前と他の属性。

+0

ありがとうございます。 私は前にこの解決策を試しましたが、何らかの理由でそれが機能しなかったので、問題は "マネージャー"が属性ではないと思っていました。 あなたの投稿を見た後、私はもう一度試してみましたが、最終的には(DNパラメータを使って)他の問題がありました。 – MaxBk

+0

喜んで助けました。あなたのADが持つ属性/データを保証するには、LDAPブラウザwww.ldapadministrator.comのようなツールでブラウズできます – Alex

関連する問題