2012-11-13 4 views
3

그룹 이름을 바꾸려고합니다. 내 코드 문제는 그것이 group.DisplayName = "NewGroupName";에 충돌한다는 것입니다 및GroupPrincipal 그룹 이름 바꾸기

속성이 저장소 유형에 대해 유효하지 않은 예외를 throw 다음

PrincipalContext context = new PrincipalContext(ContextType.Machine); 
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "GroupName"); 
group.SamAccountName = "NewGroupName"; 
group.DisplayName = "NewGroupName"; 
group.Name = "NewGroupName"; 
group.Save(); 

것 같습니다.

그 줄을 주석 처리하면 코드가 실행되지만 표시 이름은 변경하고 싶습니다. 나는 약간 연구를하고 발견했다 this. 그러나 나는 Framework 4.0을 사용하고있다. 다른 사람이 이것을 어떻게 해야할지 알고 있습니까? 아니면 제가 잘못 생각하고 있습니까?

답변

3

많은 심의 끝에 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();