获取AD计算机的描述

时间:2013-11-08 11:37:46

标签: c# visual-studio-2010 active-directory

我需要获取域计算机的描述。从注册表我只能获得本地描述,但我需要Active Directory描述。有什么想法吗?

期待! 谢谢!

1 个答案:

答案 0 :(得分:1)

使用DirectoryEntry类(System.DirectoryServices命名空间)来 连接到Active Directory。提供用户名和密码以及LDAP根路径 在Active Directory中搜索计算机对象。然后使用DirectorySearcher 用于查询计算机对象的类。

下面的代码显示了如何搜索名称为 computer01 的计算机。 我还将 description 属性添加到要加载的属性中 (并非所有属性都默认加载)。在下面的代码中,您必须替换 使用域控制器的名称。以同样的方式替换标签 与您的域名。例如,如果您的Active Directory服务器的名称是 server01 ,您的域名为 fabrikam.com ,然后LDAP路径为LDAP://server01/dc=fabrikam,dc=com

using (DirectoryEntry entry = new DirectoryEntry("LDAP://<your-ad-server-name>/dc=<domain-name-part>,dc=<domain-name-part>",
     "Administrator", "Your Secure Password", AuthenticationTypes.Secure))
{
  using (DirectorySearcher adSearcher = new DirectorySearcher(entry))
  {
    string computerName = "computer01";
    adSearcher.Filter = "(&(objectClass=computer)(cn=" + computerName + "))";
    adSearcher.SearchScope = SearchScope.Subtree;
    adSearcher.PropertiesToLoad.Add("description");
    SearchResult searchResult = adSearcher.FindOne();

    Console.Out.WriteLine(searchResult.GetDirectoryEntry().Properties["description"].Value);
  }
}

请注意,上面的代码在整个Active Directory中搜索计算机对象。 要仅在计算机容器中搜索,请使用以下LDAP路径:

LDAP://<your-ad-server-name>/cn=Computers,dc=<domain-name-part>,dc=<domain-name-part>