Я хотел бы запросить некоторый атрибут пользователя в нашем AD, но на конкретном DC, на C#. У нас есть несколько десятков контроллеров домена, и я подозреваю, что между ними существует проблема с репликацией. Я хотел бы очистить неиспользуемые учетные записи, к которым я хотел бы использовать последний атрибут времени входа в систему, и я хотел бы запросить это на всех контроллерах домена один за другим (я знаю, что это немного похоже на грубое форсирование, однако я не собираюсь делать это слишком часто), поэтому я могу узнать, обновляется ли последнее значение или нет. я имел код для запроса всех контроллеров домена:Запросить данные пользователя из определенного AD DC
Domain TestDomain = Domain.GetCurrentDomain();
Console.WriteLine("Number of found DCs in the domain {0}", TestDomain.DomainControllers.Count);
foreach (DomainController dc in TestDomain.DomainControllers)
{
Console.WriteLine("Name: " + dc.Name);
///DO STUFF
}
И я также нашел помощь, чтобы построить код, который может запросить пользователь из AD:
PrincipalContext context = new PrincipalContext(ContextType.Domain, "test.domain.com");
string userName = "testusername";
UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);
Console.WriteLine(user.LastLogon.Value.ToString());
Console.ReadKey();
И здесь я застрял. Теперь я хотел бы получить последнюю временную отметку входа пользователя из всех контроллеров домена. В прошлом я уже удалил случайную учетную запись, которая долгое время не использовалась (проверьте только один DC), чем оказалось, что пользователь использует ее каждый день, поэтому информация из DC не была синхронизирована. Я знаю, что наиболее разумным действием было бы проанализировать причину этого неправильного явления синхронизации, однако в моем текущем статусе, который займет возраст и, возможно, закончится без каких-либо находок ... Заранее благодарим за конструктивный ответ/комментарий!
Спасибо, что работает для меня! Надеюсь, я смогу реализовать остальные ;-) Еще раз спасибо, что помогли мне! – SecThor