gpt4 book ai didi

ruby - 在 net-ldap for Ruby 中搜索 "Enabled"用户

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:39 27 4
gpt4 key购买 nike

我正在使用 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 规则。仅当属性中的所有位都与值匹配时,匹配规则才为真。此规则类似于按位与运算符。

•1.2.840.113556.1.4.804 - 这是 LDAP_MATCHING_RULE_BIT_OR 规则。如果属性中的任何位与值匹配,则匹配规则为真。此规则类似于按位或运算符。

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

关于ruby - 在 net-ldap for Ruby 中搜索 "Enabled"用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com