问题标签 [directorysearcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
142 浏览

powershell - 使用 directorysearcher 时重复

我有一个脚本DirectorySearcher用于每天查询大约 13k 用户的 Active Directory。

我被告知我的报告中有重复,但我不知道为什么。

重复项通常出现在报告的末尾,到目前为止已有 6-7 个用户。这些用户和他们之前在报告中的条目之间的唯一区别是他们的上次登录时间已更改(其时间是脚本最初启动后的秒数)

感觉就像我正在根据他们上次登录时间已更改的事实来识别其他用户..有人对此有所了解吗?也许

如何禁用此行为?

该脚本在 06:00:00 运行。

这是重复条目的最后登录时间

0 投票
0 回答
50 浏览

vb.net - 使用 LDAP DirectorySearcher 确定用户是否是 AD 组的成员

我正在使用 LDAP 对内部公司应用程序的用户进行身份验证。用户必须是特定 AD 组 (NAV_Super) 的成员才能访问应用程序。身份验证方法的工作原理是确认用户拥有一个活动的 AD 帐户,但它并不限制仅访问 AD 组 (NAV_Super) 的成员。基本上任何活动的 AD 帐户都会返回 True。下面是我的代码。我将不胜感激任何建议。

0 投票
0 回答
459 浏览

c# - 使用后台工作人员进行目录搜索

在我的应用程序中,我可以选择搜索目录。如果用户搜索本地驱动器,那么我首先搜索目录(搜索索引),然后是目录

DirectoryInfo.GetDirectories("*" + AsearchString + "*",System.IO.SearchOption.AllDirectories).

在网络搜索(网络文件夹)的情况下,我只进行目录搜索。现在的问题是,用户可能有也可能没有文件或文件夹的访问权限。我收到未经授权的异常,后台工作人员停在那里,我的困惑是如何捕获异常(如果出现PathTooLong异常unauthorized,这会在我搜索网络驱动器时发生)所以如果有异常,只需记录或忽略它并继续在职的。

我把我的工作放在下面,我不知道为什么try/catch不工作,或者我应该把它移到哪里,所以如果出现异常,它会忽略并继续前进。我不得不在下面放很多代码,为此道歉,我很感激任何建议。

更新:忽略do work中的异常将停止bcw,所以我发现我的异常处理不正确。我已经更新了我的代码。

更新

这部分代码根据用户定义的字符串搜索文件或文件夹。我不想拖延用户线程,因为搜索会是一堆工作,所以我引入了后台工作程序。当我试图读取foreach (DirectoryInfo d in dInfo.GetDirectories("*" + searchString + "*", System.IO.SearchOption.AllDirectories)). 我认为,当它试图获取目录信息或文件信息时,由于用户没有访问权限,它被卡住了。

最初我没有抛出异常,因此,在得到异常之后,bcw 没有进一步移动。相反,它报告了错误并引发了运行工作者完成事件。添加throwbcw 后,继续为其余目录工作。

0 投票
1 回答
636 浏览

c# - 从 Visual C# 中的 AD 获取具有相同物理交付办公室名称的所有用户的列表#

我想在我的活动目录中搜索属于特定physicalDeliveryOfficeName (LDAP) 的所有用户,并将它们存储到SearchResult 类型的数组中。我可以使用 DirectorySearcher 过滤器执行此操作吗?还是有更好的方法?

我正在使用 asp.net,visual c#。谢谢!

0 投票
3 回答
1671 浏览

c# - 需要将 Active Directory 中的 pwdLastSet 与当前日期进行比较,并检查密码是否即将过期。最好的方法是什么?

我需要将 Active Directory 中的 pwdLastSet 字段与当前日期进行比较,如果该日期差是可配置的数字(由客户端固定),我们需要触发密码即将过期的电子邮件。此日期比较还需要使用 Active Directory 中的 LastLoginTimeStamp 完成以发送电子邮件。比较这些字段的最佳方法是什么,因为 pwdLastSet 是一个长整数,并且无法使用 DirectorySearcher 过滤器与当前日期进行比较。

0 投票
1 回答
2278 浏览

c# - 基于c#中的两个属性对directorySearcher进行排序

我正在尝试SearchResultCollection根据部门,然后按名称(均按字母顺序)获取排序对象。我正在尝试加载两个属性,但这仅采用指定的最后一个属性并根据该属性对其进行排序。

我当前的代码如下:

但同样,这只是按名称排序。我需要按部门分组的所有用户,然后按名称排序。

0 投票
2 回答
1430 浏览

powershell - Powershell DirectorySearcher 空输出

我正在编写一个 powershell 脚本,用于搜索 Active Directory OU 中的用户,并允许我通过从列表中选择匹配项来重置密码。我找到了一个使用 System.DirectoryServices.DirectoryEntry 和 System.DirectoryServices.DirectorySearcher 的教程,并将其修改如下:

这工作得很好,但是当它打印数据时,我只能得到任何返回的“名字”值。其他所有内容都变为 NULL,我不知道为什么。

我尝试了不同类型的身份验证和操作值,但 DirectorySearcher 对象似乎只收集它返回的任何记录的“名称”值,无论我加载什么。帮助?

0 投票
1 回答
1269 浏览

c# - 从 C# 从 Active Directory 增量查询用户

我正在尝试从有很多用户的 Active Directory 增量加载用户。(我的记忆无法保存所有数据。)

我尝试使用 DirectorySearcher.VirtualListView 属性每次检索一部分用户,但似乎服务器无法对如此大量的数据进行排序。它给了我一个错误信息:

服务器不支持请求的关键扩展

有没有办法解决这个问题?

0 投票
1 回答
194 浏览

c# - 使用 DirectorySearcher API 读取/处理大量数据

语境

  • 一个 OU 中有 200k 用户的 Active Directory 实例

  • 在我们的领域中增长到 100 万的潜力

不是这方面的专家。我正在尝试为需要轮询 AD 和

  • 检查 PwdLastSet 和 LastLogonDate 属性

  • 根据每个用户的价值(锁定帐户、发送电子邮件等)做出 6 种不同的决定(策略)

理想情况下,如果它是数据库,我可以选择

  • 打开连接
  • 读取一小页数据
  • 关闭连接
  • 通过应用程序在内存中处理它们
  • 重复

(因此将其留给连接池来处理事情并允许其他人做他们的事情)。

我真的很想知道在这种情况下可扩展的最佳实践/方法。我只需要为所有用户获取这两个属性(当然我们有过滤器 - 例如删除不活动的)

就个人而言,我想知道我是否应该

  • 使用我们的自定义调度程序服务来运行 Powershell(或 .NET),使用 DirectorySearcher,打开连接 (ssl),使用分页一次读取 100 / 1000 个用户并在内存中处理它们。与 AD 的连接保持打开状态

  • 打开与 AD 的连接,在 CSV(分页)中获取所有用户的转储,关闭连接,将其写入数据库以供其他任务处理。但这必须是一项夜间工作,具有数据库的潜在批量权利。

  • 在数据库表中复制这两个属性,并在它们通过我们的应用程序在 AD 中更改时保持同步。从这里消费数据。

等等。

建议?

0 投票
1 回答
96 浏览

vb.net - DirectoryServices 搜索超出范围错误

我正在尝试获取完整的用户列表及其电子邮件地址。在尝试了很多事情之后,下面终于给了我某种形式的快乐但是我得到了这个错误这个错误:

有谁知道为什么会发生这种情况以及如何防止这种情况发生?完整代码如下。