ldapsearch for users 适用于一个用户但不适用于另一个用户,即使 ADSI Edit 显示所有属性都存在且正确

ldapsearch for users works for one user but not the other even though ADSI Edit shows all attributes are there and correct

我正在尝试使用 ldapsearch 来解决我遇到一些奇怪的用户问题的原因。

我可以运行以下查询并找到一个在 AD 中的用户:

ldapsearch -h <my_host> -p 389 -x -b "cn=users,dc=domain,dc=name" -s sub "name=test 01"

这 return 包含我所期望的用户信息。如果我 运行 相同的命令但将 test01 切换到 test02,我得到 "result:32 No such object".

我进入了 AD,我看到该用户与其他用户在同一个 structure/folder 中。他们具有完全相同的权限。我在 ADSI Edit 中并排打开两个用户,我看到 "name" 属性是正确的。我禁用并重新启用了用户。我什至在 ADSI Edit 中逐行梳理了一个工作用户和一个不工作的用户,他们看起来是一样的。我已尝试搜索其他属性,例如 sAMAAccountName,但对于该个人用户仍然失败。我已确保我在 adsi 中使用管理员帐户,并且用户居住地的结构没有差异

该用户直到最近才正常工作。我唯一能找到的是使用 ldapsearch,但它找不到对象(因为我在 AD 中搜索的所有内容看起来都是正确的)。如果我 运行 整个搜索(没有 -s 选项),我看到它发现:

# test 02, Users, domain.name
dn: CN=test 02, CN=Users,DC=domain,DC=name

但用户属性没有别的。我看到的其他用户具有 return 的对象类和我在 ADSI Edit 中看到的所有其他属性。在过去的几个月里,我已经看到几个帐户发生这种情况,我唯一的解决方法就是为用户创建一个新帐户......显然是一个糟糕的解决方法。

我是不是漏掉了一些明显的东西或者可能会发生什么?

您的搜索过滤器应该是:

ldapsearch -h <my_host> -p 389 -x -b "cn=users,dc=domain,dc=name" -s sub "CN=test 01"

ldapsearch -h <my_host> -p 389 -x -b "cn=users,dc=domain,dc=name" -s sub "samacountname=test 01"

在没有 return 数据的帐户的安全选项卡上,查看是否有任何 "DENY" 访问控制条目。拒绝优先,因此一次性拒绝可以防止在更高级别存在允许条目的地方显示信息。

检查是否启用了继承。在某些情况下,这是以编程方式禁用的——域管理员——你需要修改 AdminSDHolder 上的权限集以对托管对象进行权限更改。如果禁用了继承,但帐户不是 AdminSDHolder 适用的管理员,请将匿名读取权限添加到对象(您的 post 表示您希望匿名读取用户对象)。或冒险启用继承。

如果其他所有方法都失败,请使用 "Security" 选项卡上的 "Advanced" 和 "Effective Access" 选项卡上的 select。单击 select 一个用户并输入 "Anonymous"。接受。然后点击"View effective access"。比较匿名对工作帐户和非工作帐户的有效访问。

我最近遇到了这样的问题,用户停止出现在网络应用程序上。从 AD 同步用户。

在花了几天时间研究用户的问题并将其与工作问题进行比较之后。我的解决方法是 .

"从 domainusers 组中删除此用户禁用它然后启用它并将其添加回 domainusers 组。"

执行上述操作后,用户再次像以前一样开始同步。