Создать список AD групп в которых состоит пользователь

Рейтинг: 0Ответов: 1Опубликовано: 28.03.2023

Подскажите пытаюсь создать список пользователей + название ad группы в которых они состоят.

Должно выводить: VPipkin: 'test','test2' если в 2 (определенных) группах состоит или VPipkin: 'test' если в одной. Как правильно прописать чтобы выводилось VPipkin: 'test','test2'

#Условия поиска
    conn.search(AD_SEARCH_TREE, '(|(memberOf=cn=test,ou=GIS,ou=Resource_Access_Groups_Auto,ou=Groups,dc=d,dc=a, dc=c)(memberOf=cn=test_2,ou=GIS,ou=Resource_Access_Groups_Auto,ou=Groups,dc=d,dc=a,dc=c))',
                attributes = ['sAMAccountName','sn','givenName','mail','displayName','memberof'])

#Формируем список пользователей из AD групп
    name={}
    for entri in conn.entries:
        for cn in entri.memberof:
            if re.search(r'CN=test', cn):
                name[entri.sAMAccountName[0]]='test'
            if re.search(r'CN=test2\b', cn):
                name[entri.sAMAccountName[0]]='test2'
            if re.search(r'CN=test\b', cn) and re.search(r'CN=test2', cn):
                name[entri.sAMAccountName[0]]=['test','test2']
            
    return name

Ответы

▲ 0Принят

Как-то так:

name={}
for entri in conn.entries:
name[entri.sAMAccountName[0]] = []
    for cn in entri.memberof:
        if re.search(r'CN=test\b', cn):
            name[entri.sAMAccountName[0]].append('test')
        if re.search(r'CN=test\b', cn):
            name[entri.sAMAccountName[0]].append('test2')