跨多个特定的OU GUI搜索用户/人员

时间:2020-05-22 11:21:45

标签: c# active-directory ldap ou

基本上,我正在开发用于管理Active Directory的应用程序,我添加了一层“安全性”,即可以为特定用户分配允许他们访问/搜索的OU GUID。< / p>

我现在面临的问题是,考虑到有时会收集大量GUID(1200ish)并且仅从这些特定OU返回结果,似乎没有一种查询AD的好方法。

有人知道是否可以使用多个DirectorySearcher或类似工具来实现这一目标,而又不会影响性能?

-这在SQL中非常容易...:-/

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点:

  1. 如果要使用多个DirectorySearcher对象,则可以为每个要搜索的OU创建一个DirectorySearcher,并将每个SearchRoot设置为要搜索的OU 。
  2. 在整个域上进行一次搜索,并在返回结果后过滤掉不想显示的结果。这可能会比选项1更快。
  3. 直接更改AD中的权限。如果您不希望用户看到OU中的对象,请修改该OU上的权限,以使他们无法读取该对象。然后,您只需正常进行所有搜索即可,而不必担心过滤掉任何内容。假设您正在使用用户自己的凭据查询AD。

但是事情确实变得复杂了。如果您不希望用户A看到OU B中的对象,那么可以确定对用户A隐藏该OU。但是用户A仍然可以看到其中包含来自OU B的用户的组。因此,用户A仍会看到OU B存在的证据。所以,

  • 如果您选择选项1或2,那么在查看组成员身份时也必须从组中过滤结果。

  • 如果使用选项3,则可能会破坏PowerShell脚本(如果他们曾经使用过),因为PowerShell会尝试读取组中的每个成员,如果无法读取,则会崩溃。

    < / li>