使用 ldap3 Python 在 Active Directory 中获取用户状态(禁用或活动)
Get user status (disabled or active) in Active Directory with ldap3 Python
我正在获取 Active Directory 中所有用户的列表,我需要检查他们的状态 — 用户是活动的还是禁用的。我希望 userAccountControl 应该 return 用户状态,但除了一个(returns 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])
USER = ABC : John Smith : 512
USER = DEF : Sarah Connor : 514
USER = GHI : Thomas Anderson : 66048
这是获取用户状态的正确方法吗?是否有任何其他方法可以使用 UI?
检查某些应用程序的 AD 用户状态
512 - 普通账户 (512),
514 - 禁用帐户 (2 + 512),
66048 - 普通账户 + 不过期密码 (65536 + 512).
我正在获取 Active Directory 中所有用户的列表,我需要检查他们的状态 — 用户是活动的还是禁用的。我希望 userAccountControl 应该 return 用户状态,但除了一个(returns 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])
USER = ABC : John Smith : 512 USER = DEF : Sarah Connor : 514 USER = GHI : Thomas Anderson : 66048
这是获取用户状态的正确方法吗?是否有任何其他方法可以使用 UI?
检查某些应用程序的 AD 用户状态512 - 普通账户 (512),
514 - 禁用帐户 (2 + 512),
66048 - 普通账户 + 不过期密码 (65536 + 512).