system中的目录同步.directoryServicesgrigntnull异常



我正在尝试使用System.DirectoryServices .NET Framework class库访问Active Directory Domain Services(adds)。

使用LDAP协议,我想获得具有Office设置值属性的所有DirectoryEntries使用此LDAP Filter (yralthyDeliveryOfficeName =*)同步cookie to文件的未来引用,就像目录sysynchronization中显示的示例msdn示例example

一样

这是我的代码:

 using (DirectoryEntry de = new DirectoryEntry("LDAP://myDomain.com/OU=Test,DC=myDomain,DC=com"))
        {
            using (var ds = new DirectorySearcher(de))
            {
                ds.PropertiesToLoad.Add("distinguishedName");
                ds.SearchScope = SearchScope.Subtree;
                ds.Filter = "(physicalDeliveryOfficeName=*)";
                ds.DirectorySynchronization = new DirectorySynchronization();
                SearchResultCollection searchResultCollection = ds.FindAll();
                foreach (SearchResult result in searchResultCollection)
                {
                    var dn = (string)result.Properties["distinguishedName"][0];
                    //do Something
                }
                var cookie = ds.DirectorySynchronization.GetDirectorySynchronizationCookie();
                File.WriteAllBytes(@"location", cookie);
            }
        }

每次我运行此代码

ds.DirectorySynchronization = new DirectorySynchronization();

我每当我称呼 ds.findall()时会得到一个系统。知道每当我评论相同的代码行时,我都会获得搜索结果,没有任何问题。

我希望我听起来足够清楚。由于某种原因,我发现该字段几乎没有文档。我真的找不到这样的解释。

目录synchronization必须分配给域根LDAP路径,并且不与组织单元等子目录一起工作。

using(DirectoryEntry de = new DirectoryEntry("LDAP://myDomain.com/DC=myDomain,DC=com")){
//same code
}

这将解决问题。

如果任何人都想跟踪诸如OU之类的子目录中的更改,则应使用 usnchanged。

最新更新