1

Мне было поручено создать решение для добавления и удаления пользователей AD в группы AD и из них. Следующий код является функциональным, за исключением случаев, когда я пытаюсь сохранить группу. Я получаю исключение из «Объект уже существует». Я сузил проблему (я думаю) в SamAccountName, и я думаю, что именно это вызывает исключение.C# .NET, Добавление пользователя AD в группу AD - Объект уже существует

У меня нет доступа к изменению чего-либо в AD, кроме разрешений, которые мне предоставили, чтобы изменить группы, назначенные для добавления/удаления пользователей из них. Я провел бесконечные исследования, и я просто не смог определить решение. Любая помощь будет глубоко оценена. Заранее спасибо.

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "address", "DN", "username", "password"); 
GroupPrincipal grp = new GroupPrincipal(ctx, sGroup); 
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, sUser); 
if (grp != null) 
{     
    grp.Members.Add(usr); 
    grp.Save(); 
} 

ответ

1

Мне кажется, что вы создаете новую группу с тем же именем, что и существующая. Вместо

GroupPrincipal grp = new GroupPrincipal(ctx, sGroup); 

вы могли бы попробовать

GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, sGroup); 

получить существующую группу, а затем изменить это?

+0

Я изменил код, чтобы он соответствовал, как показано выше, я возвращаю исключение «Несколько принципов содержат совпадающую идентификацию». – Aaron

+1

Возможно, вам нужно быть более точным в предоставлении sGroup: 'GroupPrincipal grp = GroupPrincipal.FindByIdentity (ctx, IdentityType.SamAccountName, sGroup);'. Или укажите отличительное имя. В основном у вас есть два объекта, которые, по мнению AD, соответствуют тому, что вы там проходите. – lordjeb

Смежные вопросы