我需要获取域计算机的描述。从注册表我只能获得本地描述,但我需要 Active Directory 描述。有任何想法吗?
期待!谢谢!
我需要获取域计算机的描述。从注册表我只能获得本地描述,但我需要 Active Directory 描述。有任何想法吗?
期待!谢谢!
使用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>