使用的System.DirectoryServices,一个可以得到highestCommittedUSN这种方式:
using(DirectoryEntry entry = new DirectoryEntry("LDAP://servername:636/RootDSE"))
{
var usn = entry.Properties["highestCommittedUSN"].Value;
}
不过,我需要使用System.DirectoryServices.Protocols,不利用ADSI获得从远程ADLDS此信息。 以下是什么,我试图做的简化代码示例:
using(LdapConnection connection = GetWin32LdapConnection())
{
var filter = "(&(highestCommittedUSN=*))";
var searchRequest = new SearchRequest("RootDSE", filter, SearchScope.Subtree, "highestCommittedUSN");
var response = connection.SendRequest(searchRequest) as SearchResponse;
var usn = response.Entries[0].Attributes["highestCommittedUSN"][0];
}
不幸的是这踢回一个“DirectoryOperationException:可分辨的名称包含无效语法。” 起初我想可能有一些错误GetWin32LdapConnection(),但该代码被称为在许多其他地方连接到该目录,永远不会出错了。
有任何想法吗?