我無法從用戶對象(如PasswordNeverExpires)獲取某些字段。現在我正在循環2000多個用戶返回的每個屬性,並且我的條件斷點永遠不會中斷一次,所以我知道它不會返回。如果我無條件地中斷此代碼返回的屬性數總是1. 我們的服務器是Windows 2003 Server。我可以從NetEnum命令中獲取所需的全部信息。 我見過其他人聲稱他們可以做到這一點,我不明白我的代碼有什麼不同。當我沒有提供任何屬性加載時,它會抓取大約30-37個屬性。我需要和使用的幾個屬性。無法獲取LDAP用戶的某些字段
public void FetchUsers(string domainId, Sql sql)
{
var entry = new DirectoryEntry("LDAP://" + DomainControllerAddress, DomainPrefixedUsername, Password,
AuthenticationType);
var dSearch = new DirectorySearcher(entry)
{
Filter = "(&(objectClass=user)(!(objectclass=computer)))",
SearchScope = SearchScope.Subtree,
PageSize = 1000,
};
dSearch.PropertiesToLoad.Add("passwordneverexpires");
var users = dSearch.FindAll();
foreach (SearchResult ldapUser in users)
{
SaveUser(ldapUser, sql, domainId);
}
}
private void SaveUser(SearchResult ldapUser, Sql sql, string domainId)
{
if (ldapUser.Properties.PropertyNames == null) return;
foreach (string propertyName in ldapUser.Properties.PropertyNames)
{
//I'm breaking here on the condition that propertyName != 'adspath' and it never breaks
var v = ldapUser.Properties[propertyName];
}
return;
}