使用ldap3 Python获取Active Directory中的用户状态(禁用或活动)

时间:2018-06-22 12:44:30

标签: python active-directory ldap3

我正在获取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])
  

USER = ABC:John Smith:512   USER = DEF:Sarah Connor:514   USER = GHI:托马斯·安德森:66048

这是获取用户状态的正确方法吗?还有其他方法可以通过带有UI的某些应用程序检查AD用户状态吗?

1 个答案:

答案 0 :(得分:0)

根据userAccountControl flags

512-普通帐户(512),

514-禁用帐户(2 + 512),

66048-普通帐户+密码未过期(65536 + 512)。