GroupPrincipal переименовать группу
Я пытаюсь переименовать группу. Мой код выглядит следующим образом
PrincipalContext context = new PrincipalContext(ContextType.Machine);
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName");
group.SamAccountName = "NewGroupName";
group.DisplayName = "NewGroupName";
group.Name = "NewGroupName";
group.Save();
Проблема в том, что он падает на group.DisplayName = "NewGroupName";
и бросает исключение
свойство недопустимо для этого типа магазина.
Если я закомментирую эту строку, код будет выполняться, но я хотел бы изменить отображаемое имя. Я провел некоторое исследование и нашел это. Однако я использую Framework 4.0. Кто-нибудь знает другого, что делать, или я поступаю неправильно?
1 ответ
Решение
После долгих размышлений я нашел единственный способ получить group.Name = "Newname";
работать, это получить объект DirectoryEntry, а затем изменить его. Код ниже
PrincipalContext context = new PrincipalContext(ContextType.Machine);
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName");
var Groupentry = (DirectoryEntry)group.GetUnderlyingObject();
Groupentry.Rename("newname");
Groupentry.CommitChanges();