代码之家  ›  专栏  ›  技术社区  ›  kiryha

使用ldap3 python在活动目录中获取用户状态(禁用或活动)

  •  2
  • kiryha  · 技术社区  · 7 年前

    我得到了一个active directory中所有用户的列表,如果用户是活动的或禁用的,我需要检查他们的状态。我想是的 用户帐户控件 应该返回用户状态,但是除了一个用户(返回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:John Smith:512 用户=def:sarah connor:514 用户=GHI:Thomas Anderson:66048

    这是获取用户状态的正确方法吗?有没有其他方法可以用ui检查应用程序的ad用户状态?

    1 回复  |  直到 7 年前
        1
  •  3
  •   kiryha    7 年前

    根据 userAccountControl flags :

    512-普通账户(512),

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

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