0
AD_DNS_NAME = xx.xxxxxx.org'
AD_LDAP_URL = 'ldap://%s' % (AD_DNS_NAME)
con = ldap.initialize(AD_LDAP_URL)
    username = 'john'
    password = '123'
    base_dn = 'OU=Domain Users,DC=xx,DC=xxxxx,DC=org'
    filter = '(sAMAccountName=' + username + ')'
    attrs = ['mail']
    dn = '%s@%s' % (username, AD_DNS_NAME)

    try:
        con.simple_bind_s(dn, password)
        my_search = con.search_s(base_dn, ldap.SCOPE_SUBTREE, filter , attrs )
    # my_search return 
   #[('CN=john,OU=x_x_x xx,OU=xxxxxx,OU=CN BU,OU=Domain Users,DC=xx,DC=xxxxxx,DC=org', {'mail': ['john@xxxxxx.com.cn']})]

上記のコードは、"john" という名前の特定のユーザーの情報を検索できますが、メール グループからすべてのメンバーの名前を取得する方法がわかりません。これを行う方法を知っているのは誰ですか? たとえば、グループを検索したい「ALL of AAA」と命名

attrs を null に設定し、以下のようにすべての情報を取得します。他の重要でない情報を削除します

[ 
   ('CN=John,OU=C_E_S XX,OU=Mycity,OU=CN BU,OU=Domain Users,DC=xx,DC=xxxxxx,DC=org', 
     { 
        'mailNickname': ['John'], 
        'primaryGroupID': ['513'],
        'memberOf': [ 'CN=All of AAA,OU=CN BU,OU=Distribution List,OU=Exchange,DC=xx,DC=xxxxxx,DC=org', ], 
     } 
   )
  ] 

フィルタの設定方法を教えてください: filter = '(&(objectClass=group)(CN=groupname))' set group='memberOf' and groupname='All of AAA' ???, 私は試しましたこれは役に立ちません

私はこの問題を解決しました。今、方法を書き留めます:

filter = "(&(objectCategory=person)(objectClass=user)(memberOf=CN=All of AAA,OU=CN BU,OU=Distribution List,OU=Exchange,DC=xx,DC=xxxxxx,DC=org))"
4

1 に答える 1

0

次のようなフィルターを使用できます。

filter = '(&(objectClass=group)(CN=groupname))'

attrs 変数を null に変更して、すべての属性を返すようにします

于 2012-11-24T09:47:47.927 に答える