Атрибут whenChanged
содержит дату последнего изменения учетной записи, поэтому вы можете искать по ней.Ваш запрос LDAP будет выглядеть примерно так:
(&(objectClass=user)(whenChanged>=20190213000000.0Z))
Формат даты, который вам нужно использовать: YYYY MM DD HH mm ss.s Z
(но без пробелов).Z
указывает, что это время UTC.Если вы предпочитаете использовать часовой пояс, вы можете заменить Z на смещение часового пояса.Например, чтобы найти пользователей, измененных сегодня после 9:00 в моем часовом поясе (восточном), я использовал бы это:
(&(objectClass=user)(whenChanged>=20190213090000.0-0500))
Вот краткий пример того, как использовать это:
var search = new DirectorySearcher(new DirectoryEntry()) {
PageSize = 1000, //if you omit this, you'll never get any more than 1000 results
Filter = "(&(objectClass=user)(whenChanged>=20190213090000.0-0500))"
};
//add whatever properties you want to use here
search.PropertiesToLoad.Add("mail");
using (var results = search.FindAll()) {
foreach (SearchResult result in results) {
if (result.Properties.Contains("mail")) {
var mail = (string) result.Properties["mail"][0];
//do something with this information
}
}
}