DirectorySearcher 的不同结果

Different result with DirectorySearcher

我写了一个小程序来查看AD组成员。当我在我的电脑上执行以下代码时,它运行良好,SearchResult 包含 "member" 属性,但是当我 运行 服务器或另一台计算机上的相同 exe "member" 属性 丢失。 usnchanged 和 usncreated 也会不同。我 运行 在每台电脑上使用相同用户的 exe。这是什么原因造成的?

...
using (DirectorySearcher searcher = new DirectorySearcher())
{
    searcher.CacheResults = false;
    searcher.Filter = "(&(objectClass=group)(cn=" + ADName + "))";
    searcher.SizeLimit = int.MaxValue;
    searcher.PageSize = int.MaxValue;
    if (!DirectoryEntry.Exists(ADPath))
    {
        return null;
    }
    searcher.SearchRoot = new DirectoryEntry(ADPath);
    using (SearchResultCollection collection = searcher.FindAll())
    {
        if (collection.Count == 1)
        {
            return collection[0];
        }
    }
}
...

组成员身份数据未复制到全局编录。如果您碰巧使用实际成员数据连接到域控制器,查询有时可能会起作用。在其他计算机上,您可能连接到不同域的其他域控制器,但信息不可用。

您可能想要连接到实际域中的域控制器,而不是全局编录。