C# 试图拉';由'管理;AD中计算机对象的属性

C# 试图拉';由'管理;AD中计算机对象的属性,c#,C#,我在这里和那里找到了一些示例,但似乎找不到一个能够从计算机记录中检索managedby属性的示例。(我不知道用户名,但它存储在managedby中) 你的例子对我来说很好,所以有几点需要检查 1) lblDomain.Text中的域名正确吗?你能举个例子说明你在用什么吗?假名字没问题。 2) 您是否确实拥有“按集合管理”的计算机帐户?默认为空 除此之外,我使用了准确的代码,并获得了分配给计算机帐户的用户的DN,因此这可能与您的连接方式有关。我确实为您修复了格式,但出于某种原因,您再次破坏了它(现

我在这里和那里找到了一些示例,但似乎找不到一个能够从计算机记录中检索managedby属性的示例。(我不知道用户名,但它存储在managedby中)


你的例子对我来说很好,所以有几点需要检查

1) lblDomain.Text中的域名正确吗?你能举个例子说明你在用什么吗?假名字没问题。 2) 您是否确实拥有“按集合管理”的计算机帐户?默认为空


除此之外,我使用了准确的代码,并获得了分配给计算机帐户的用户的DN,因此这可能与您的连接方式有关。

我确实为您修复了格式,但出于某种原因,您再次破坏了它(现在已完全删除了代码块)。发生什么事了?好了,它给了我麻烦,对不起!压痕又破了。请修复它。不,因为每行前大约有20个字符的不必要空格。在Markdown中,您只需要将代码缩进四个空格。啊,我明白了,非常抱歉,我想我以前只在这里发布过一次,通常我可以在其他帖子中找到所有答案。。。哈哈:)好吧,这是我参加的第一个成功的测试,但我认为我需要改进“全部查找”。当我运行它时,它会返回一个随机的计算机记录,所以我想我的问题应该是,我如何调整这个示例以接受一个pc名称,然后从该记录中提取信息。这里的技术人员应该在分配机器时输入数据,但这就是我插入上次检查的原因。抱歉,这是我第一次尝试深入的广告查询:)啊,我们开始吧,替换上面的过滤器:虽然这段代码可能会回答这个问题,但提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
search.Filter = "(&(objectClass=computer)(cn=pcname))";
search.Filter = "(&(objectClass=computer)(cn=pcname))";
 DirectoryEntry searchRoot = new DirectoryEntry("LDAP://"+lblDomain.Text);

 DirectorySearcher search = new DirectorySearcher(searchRoot);

 search.Filter = "(&(objectClass=computer)(name=" + host + "))";

 search.PropertiesToLoad.Add("managedBy");
 search.PropertiesToLoad.Add("distinguishedName");
 search.PropertiesToLoad.Add("cn");

 SearchResultCollection groups = search.FindAll();


 foreach (SearchResult sr in groups)
 {
  if (sr.Properties["managedBy"].Count > 0)
  {
      lblManagedBy.Text=(sr.Properties["managedBy"][0].ToString());
  }
  else
  {
     lblManagedBy.Text = "No owner specified in ManagedBy";
  }
}