Я пытаюсь удалить всех пользователей из группы AD с помощью следующего кода:
private void RemoveStudents() {
foreach (DirectoryEntry childDir in rootRefreshDir.Children) {
DirectoryEntry groupDE = new DirectoryEntry(childDir.Path);
for (int counter = 0; counter < groupDE.Properties["member"].Count; counter++) {
groupDE.Properties["member"].Remove(groupDE.Properties["member"][counter]);
groupDE.CommitChanges();
groupDE.Close();
}
}
}
rootRefreshDir — это каталог, содержащий все группы AD (childDir).
Что я нахожу здесь, так это то, что этот код ведет себя неправильно. Он удаляет пользователей, но не после первого запуска. Это делает «некоторые». Потом запускаю еще раз, и еще, и еще - в зависимости от того, сколько пользователей нужно удалить в группе. Я не уверен, почему это работает таким образом.
Может ли кто-нибудь помочь исправить этот код или предоставить альтернативный метод удаления всех пользователей в группе?