Как получить пользователей активного каталога, которые изменены в определенный интервал? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть ситуация, когда мне нужно получить список пользователей, которые были созданы / обновлены в активном каталоге за последние несколько часов (например, 4 часа).

Чтобы быть очень точным, я хочу, чтобы пользователиадрес электронной почты или имя было обновлено.не другие свойства.

Требуемое решение находится в c #.Любая помощь высоко ценится.

Заранее спасибо.

1 Ответ

0 голосов
/ 13 февраля 2019

Атрибут 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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...