活动用户的查询广告

2024-06-24 12:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个脚本,通过ldap来标识在activedirectory中有效的AD用户。问题是我不知道active directory中有效用户的确切含义。。。在

假设我们有一个windows登录列表。我们想查询用户是否能够登录。这意味着帐户没有过期,没有停用。。。还有什么?在

res = l.search_s("DC=...",
                 ldap.SCOPE_SUBTREE,
                 '(&(objectClass=user)(sAMAccountName=%s))' % sAMAccountName,
                 ['lastlogon','accountExpires', 'cn', 'mail', 'lockoutTime'])

我的脚本和if-else-if-else变得越来越复杂。我寻找一种清晰透明的查询方式:用户当前是否能够登录?在


Tags: 用户脚本列表ifwindows帐户ldapelse
1条回答
网友
1楼 · 发布于 2024-06-24 12:24:50

进一步研究后:

您应该使用:

  • ^{1ago要比较的时间戳是哪个
  • AccountExpires:值0或0x7fffffffffffff(9223372036854775807)表示帐户永不过期。在
  • lockoutTime:(lockoutTime=>0):这是帐户被锁定时的时间戳,因此如果设置了它,它将被锁定(搜索ldapwiki.com网站更多信息,如 我不能在一篇帖子中放置超过2个链接;)

我对ActiveDirectory不是很了解,但是在ldap过滤器中进行所有这些测试不是更容易吗?在

类似于(需要调整,对应于属性LDAP语法)

(&
  (objectClass = user)
  (sAMAccountName = %s)
  (lastlogon < dateFrom1Year)
  (!(accountExpires = *))
  ...
)

相关问题 更多 >