加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在net-ldap中搜索Ruby的“已启用”用户

发布时间:2020-12-17 01:52:34 所属栏目:百科 来源:网络整理
导读:我正在使用 net-ldap gem来搜索活动目录. 我可以使用过滤器搜索用户: filter = Net::LDAP::Filter.eq("sAMAccountName","neil*")filter2 = ~Net::LDAP::Filter.eq("objectclass","computer")joined_filter = Net::LDAP::Filter.join(filter,filter2)ldap.se
我正在使用 net-ldap gem来搜索活动目录.
我可以使用过滤器搜索用户:

filter = Net::LDAP::Filter.eq("sAMAccountName","neil*")
filter2 = ~Net::LDAP::Filter.eq("objectclass","computer")

joined_filter = Net::LDAP::Filter.join(filter,filter2)

ldap.search(:base => treebase,:filter => joined_filter) do |entry|
   puts entry.sAMAccountName
end

这给了我所有sAMAccountName以neil开头并且不是计算机帐户的用户.

如何添加仅搜索已启用帐户的过滤器?

解决方法

您可以使用ruleOID LDAP_MATCHING_RULE_BIT_AND规则来检查UserAccountControl.

我使用此过滤器来查找已启用的用户:

(&(objectCategory=organizationalPerson)(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))

如果帐户被禁用,userAccountControl:1.2.840.113556.1.4.803将设置位2.

The value of ruleOID can be one of the following:

?1.2.840.113556.1.4.803 – 这是LDAP_MATCHING_RULE_BIT_AND规则.仅当属性中的所有位与值匹配时,匹配规则才为真.此规则类似于按位AND运算符.

?1.2.840.113556.1.4.804 – 这是LDAP_MATCHING_RULE_BIT_OR规则.如果属性中的任何位与值匹配,则匹配规则为true.此规则类似于按位OR运算符.

例如,您希望在Active Directory中查询已禁用的用户类对象.保存此信息的属性是userAccountControl属性.该属性由不同标志的组合组成.用于设置要禁用的对象的标志是UF_ACCOUNTDISABLE,其值为0x02(十进制2).使用UF_ACCOUNTDISABLED位设置指定userAccountControl的按位比较过滤器将类似于:(的UserAccountControl:1.2.840.113556.1.4.803:= 2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读