列出Active Directory中的所有计算机计算机、Active、Directory

2023-09-08 12:17:48 作者:锦年祭语°

我想知道如何让所有的计算机/计算机/ PC的列表,从Active Directory?

Im wondering how to get a list of all computers / machines / pc from active directory?

(试图让这个页面在搜索引擎的诱饵,会回复我。如果有人有更好的回答金正日接受)

(Trying to make this page a search engine bait, will reply myself. If someone has a better reply il accept that )

推荐答案

如果你有一个非常大的领域,或者您的域名已经就如何多少项目可以为每个搜索返回配置的限制,您可能需要使用分页。

If you have a very big domain, or your domain has limits configured on how how many items can be returned per search, you might have to use paging.

public static List<string> GetComputers()
{
    List<string> ComputerNames = new List<string>();

    DirectoryEntry entry = new DirectoryEntry("LDAP://YourActiveDirectoryDomain.no");
    DirectorySearcher mySearcher = new DirectorySearcher(entry);
    mySearcher.Filter = ("(objectClass=computer)");
    mySearcher.SizeLimit = int.MaxValue;
    mySearcher.PageSize = int.MaxValue;

    foreach(SearchResult resEnt in mySearcher.FindAll())
    {
        //"CN=SGSVG007DC"
        string ComputerName = resEnt.GetDirectoryEntry().Name;
        if (ComputerName.StartsWith("CN="))
            ComputerName = ComputerName.Remove(0,"CN=".Length);
        ComputerNames.Add(ComputerName);
    }

    mySearcher.Dispose();
    entry.Dispose();

    return ComputerNames;
}