C# 加载active directory用户及其关联计算机
大家好,我正在尝试开发一个程序,该程序将列出Active Directory的所有用户,当我选择一个用户时,该程序应该能够显示与该用户关联的计算机。i、 e该广告用户可以访问的计算机。 我已经编写了列出所有用户的代码,但不知道如何列出与该用户关联的计算机。 以下是我将AD用户加载到datatable中的代码:C# 加载active directory用户及其关联计算机,c#,active-directory,C#,Active Directory,大家好,我正在尝试开发一个程序,该程序将列出Active Directory的所有用户,当我选择一个用户时,该程序应该能够显示与该用户关联的计算机。i、 e该广告用户可以访问的计算机。 我已经编写了列出所有用户的代码,但不知道如何列出与该用户关联的计算机。 以下是我将AD用户加载到datatable中的代码: DataTable dtUser= new DataTable(); try { DirectoryEntry dom = Doma
DataTable dtUser= new DataTable();
try
{
DirectoryEntry dom = Domain.GetComputerDomain().GetDirectoryEntry();
DirectorySearcher dsAllUsers = new DirectorySearcher(dom);
dsAllUsers.SearchScope = SearchScope.Subtree;
dsAllUsers.Filter = "(objectCategory=Person)";
SearchResultCollection result = dsAllUsers.FindAll();
dtUser.Columns.Add("CustodianName");
dtUser.Columns.Add("Email");
dtUser.Columns.Add("Title");
dtUser.Columns.Add("Dept.");
foreach (SearchResult rs in result)
{
DataRow newRow = dtUser.NewRow();
if (rs.GetDirectoryEntry().Properties["samaccountname"].Value != null)
newRow["CustodianName"] = rs.GetDirectoryEntry().Properties["samaccountname"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["mail"].Value != null)
newRow["Email"] = rs.GetDirectoryEntry().Properties["mail"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["title"].Value != null)
newRow["Title"] = rs.GetDirectoryEntry().Properties["title"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["department"].Value != null)
newRow["Dept."] = rs.GetDirectoryEntry().Properties["department"].Value.ToString();
dtUser.Rows.Add(newRow);
}
return dtUser;
}
catch (Exception)
{
throw;
}
我不相信标准LDAP/Active Directory有这样的功能 计算机只是另一类AD对象——但用户和一台或多台计算机之间没有链接——计算机类上没有“归属”属性,用户上也没有“计算机”集合
如果您的组织实施了对默认AD模式的扩展,这是完全可能的!,这是一个自定义解决方案,然后您必须知道它是什么!:- 我不相信标准LDAP/Active Directory有这样的功能。计算机只是另一类广告对象,但用户和一台或多台计算机之间没有链接。如果您已经实现了这一点,那么它必须是LDAP计算机类上的一个自定义属性——如果它是自定义的,那么您必须知道它是什么!谢谢@marc_。但在我看来,如果我应该找到用户的组/成员并找到与该组/成员相关的计算机,那么我认为一定有办法。有可能吗?正如我所说的-没有,我认为标准LDAP/AD中没有任何属性可以将用户/组链接/连接到计算机。因此,您的意思是:-没有办法知道与ADNo的特定用户关联的计算机,没有。计算机没有分配给用户,没有belongsTo属性或类似的东西。计算机在AD中是独立的对象。任何连接用户和计算机的东西都可能是您的组织所做的,但它在AD中没有表示。