4

我正在获取 Active Directory 中所有用户的列表,我需要检查他们的状态——用户是活​​动的还是禁用的。我希望userAccountControl应该返回用户状态,但除了一个(返回 66048)之外的所有用户我只得到 512,这与用户状态无关(据我所知)。

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

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

4

1 回答 1

4

根据userAccountControl 标志

512 - 普通帐户 (512),

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

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

于 2018-06-22T15:07:39.730 回答