Получить статус пользователя (отключен или активен) в Active Directory с помощью ldap3 Python
Я получаю список всех пользователей в Active Directory, и мне нужно проверить их статус - если пользователь активен или отключен. Я ожидаю, что userAccountControl должен вернуть статус пользователя, но я получаю только 512 для всех пользователей, кроме одного (который возвращает 66048), и это не коррелирует со статусом пользователя (насколько я знаю).
from ldap3 import Server, Connection
serverName = 'LDAP://server'
domainName = 'name'
userName = 'superuser'
password = 'password'
base = 'longString'
server = Server(serverName)
conn = Connection(server, read_only=True, user='{0}\\{1}'.format(domainName, userName), password=password, auto_bind=True)
conn.search(base, '(objectclass=person)', attributes=['displayName', 'mail', 'userAccountControl','sAMAccountName'])
for i in conn.entries:
print 'USER = {0} : {1} : {2}'.format(i.sAMAccountName.values[0], i.displayName.values[0], i.userAccountControl.values[0])
ПОЛЬЗОВАТЕЛЬ = ABC: Джон Смит: 512 ПОЛЬЗОВАТЕЛЬ = DEF: Сара Коннор: 514 ПОЛЬЗОВАТЕЛЬ = GHI: Томас Андерсон: 66048
Это правильный способ получить статус пользователя? Есть ли другой способ проверить статус пользователя AD в каком-либо приложении с пользовательским интерфейсом?
1 ответ
В соответствии с флагами userAccountControl:
512 - Обычный счет (512),
514 - отключить аккаунт (2 + 512),
66048 - Обычный аккаунт + пароль не истекает (65536 + 512).