问题标签 [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 回答
151 浏览

c# - 如何在 c# .net 的 Active Directory 中返回成员所属的每个组的显示名称?

我已经看到了用于取回用户所属的所有组的解决方案,但是我无法找到一个解决方案来将它们返回并返回它们各自的显示名称。

我知道您可以遍历每个组并获取其他信息,例如显示名称,但是我担心在大量组上迭代查询的性能。如果我在获取组时只返回别名,并且我为用户返回了 120 个组,我不想在循环中针对其他属性(例如显示名称)进行额外的 120 次查询。

是否有一种有效的方法来获取用户名,并从中返回用户按显示名称所在的所有组的列表,而无需执行额外的迭代查询?

在 c# .net 中寻找解决方案

0 投票
1 回答
1459 浏览

c# - DirectorySearcher 过滤器如何根据过去 30 天进行限制

我正在为特定 OU 中的用户搜索 Active Directory。我只获取在过去 30 天内登录的用户。

我的搜索过滤器查询是:

我得到我用过的搜索过滤器无效:

没有错误

我将上次登录修改如下:

我正在调用执行此操作的方法

上面的功能很好用!必须有一种方法可以检查最后一次登录是否超过 30 天。我将不胜感激任何帮助。谢谢你!

下面的答案是正确的谢谢

我必须添加以下代码才能将数据放入数据库:

我将它放在 lastLogon 的下方 用于查询过滤器:我必须反转 < 以获取从现在到 30 天标记的数据。

0 投票
1 回答
221 浏览

c# - DirectorySearcher 类超出范围异常

当我对 BitLocker 恢复密钥执行目录搜索时,我似乎无法返回任何有意义的搜索结果。

基本上,我用包含 BitLocker 密钥的计算机填充了一个列表(我们的组织中只有使用 BitLocker 的笔记本电脑)。用户选择笔记本电脑后,相关的 BitLocker 密钥应填充到他们可以复制或打印的文本框中,但每次我尝试从选定的计算机中获取该密钥时,都会出现越界异常。我一直在使用 DirectorySearcher 来查找其他属性,例如用户帐户或计算机名称,但这给我带来了麻烦。我了解错误是什么,我只是不知道是什么原因造成的,而且我似乎找不到任何其他完全涵盖该主题的答案。任何输入表示赞赏。

这是一个例外:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引。

经过进一步调查,目录搜索器似乎只搜索封装了 msFVE-RecoveryInformation 属性的属性。如果我尝试根据所选计算机名称添加过滤器,它将不会提供具有实际值的 SearchResult 属性。例如,如果我尝试基于“cn”设置过滤器,它会返回 BitLocker 密钥的 GUID。

0 投票
0 回答
2320 浏览

vb.net - 如何在 VB.Net 中使用 DirectorySearcher 检索 Active Directory 用户的属性

我正在尝试通过使用他们的登录 ID 和 VB.Net 中的 DirectorySearcher.FindOne() 方法来检索已知 Active Directory 用户的电子邮件地址,但我无法获得任何结果。

抱歉,我是 VB.Net 的新手,不知道哪里出错了。我尝试使用在网上找到的各种示例,但它们都在 C# 中。我已经能够将代码转换为 VB,但我仍然无法使用我找到的内容提取结果。在我在这里找到的最新示例中!它使用 FindAll() 方法并将结果放入 SearchResultCollection 对象中。该集合的计数为 0,因此我尝试使用 FindOne() 方法并尝试将结果放入 SearchResult 对象中。这对我也不起作用。

0 投票
1 回答
319 浏览

vb.net - .Net DirectorySearcher 未检索用户对象中的所有值

作为我正在编写的程序的一部分,我必须从当前用户的 AD 对象中检索所有用户数据。

这是我正在使用的代码...

如果我运行该程序,系统会返回我所有的 AD 设置,并在框中填充每个设置。

程序导入我的广告详细信息ADUC 地址条目。

如果另一个用户运行该程序,系统只返回部分结果集,尽管项目已在他的 ADUC 属性对话框中完成。

缺少其他用户广告详细信息其他用户 ADUC,显示地址

Searcher 仅返回每个用户 1 个条目(假设它发送 SAMAccountName),但我已设置PageSizeSizeLimit值以避免 1000 项问题。

我也尝试了一个更简单的过滤器samaccountname= & username(1),但无济于事。

我是否遇到了一些未记录/未报告的 AD 安全问题?我的帐户曾经是域管理员,但经过安全审查后不再是。

问题与计算机无关,因为如果我通过模拟在他的计算机上运行程序,我的详细信息将全部返回,反之亦然(他不是)。

0 投票
3 回答
5001 浏览

c# - LDAP - 在 MemberOf 过滤器上使用通配符

我需要从特定类别中获取所有用户及其组。

用户示例:

我需要获取memberof包含的每个用户OU=Groupes,OU=CR 1,DC=zcam,DC=ztech(我的示例中的 user1 和 user2)

按照这个文档(https://docs.microsoft.com/fr-fr/windows/desktop/ADSI/search-filter-syntax)我尝试了以下语法:

在此之后(https://community.servicenow.com/community?id=community_question&sys_id=00d29fa1db101fc01dcaf3231f96197f)我尝试将通配符更改为*a%但它没有改变结果。

0 投票
1 回答
1002 浏览

powershell - 如何使用 adsi 查找组或对象的成员

该公司有一个 AD 结构,我需要搜索用户所属的组名。我知道应该在用户的“memberof”属性中,我们只是说这并不总是正确的。

我尝试使用以下代码在 OU 中的所有组的“成员”属性中查找用户名(或对象名),然后返回组的名称。不幸的是,我认为我遗漏了一些东西。反向搜索(即:列出组的成员)正在工作,但就我而言,我不知道组的名称。我还需要所有组,而不仅仅是一个组。

0 投票
1 回答
125 浏览

c# - C# Active Directory DirectorySearcher 只找到我自己的用户

我有一个函数用于查找与给定名称匹配的任何用户的 displayName 和 mail 字段。到目前为止它有效,但它只返回我登录的用户。

我已经尝试过不同版本的DirectorySearcher,如下所示:

我还尝试了不同的路径格式和 AuthenticationTypes。

我的功能:

这是使用此函数的示例输出:

我能得到的只是我自己的名字。

在此先感谢您的帮助。

0 投票
1 回答
618 浏览

c# - 如何使用 LDAP 和 C# 搜索用户 ID 列表?

我需要搜索给定特定用户 ID 列表的用户。如果我使用此过滤器搜索单个用户,它工作正常:

我找到了这个LDAP Filter Syntax 页面,它显示条件可以嵌套。

(|(cn=Jim Smith)(&(givenName=Jim)(sn=Smith)))

条件可以用括号嵌套,但要确保括号匹配。

所以我尝试使用这个过滤器和 FindAll(),虽然我希望我们看到 1,加拿大看到 1,但它只在加拿大找到了一个。

(&(sAMAccountType=805306368)(!(sAMAccountName=xyz123)(sAMAccountName=abc456)))

查询域名:us

计数:0

查询域名:加拿大

计数:1

所以也许我对过滤器语法的理解不够好。另外,是否可以一次调用搜索所有域?

0 投票
1 回答
356 浏览

c# - DirectorySearcher 在本地工作但不在 IIS 服务器中工作

我想列出所有邮件列表或搜索我的 Active Directory 中存在的邮件 ID,因此如果我通过 Visual Studio 运行它但我发布或部署这些代码到IIS 服务器。

我的 C# 代码,

我本地的目录路径,

我哪里出错了?我应该怎么做才能解决这个问题?