AD :: Active directory 사용자 이름 CN값 변경하기 (renaming a user, change cn property of
Active Directory를 이용해 사용자 CN 값을 바꾸려고 하는 도중 막혔다.
CN값을 바꾸려고 했던 이유는 일을 하는 도중 특정 디렉토리 아래에 있는 사용자들의 이름앞에
어떤 문자를 붙여서 이름을 바꾼 후 디렉토리를 옮겨달라고 했기 때문이었다.
다른 특성 값들은 해당 사용자의 directoryEntry 값을 가져와서 값을 바꿔주면 되었기 때문에
name도 그렇게 하면 될거라고 생각함..
첫 번째로 시도한 방법 🔥
👉 Duser.Properties["cn"].Value = "바꾸고 싶은 이름";
exception 에러 메세지 : The directory service cannot perform the requested operation on the RDN attribute of an object.
🙄: CN 값 바꾸고 싶다고
AD : 그거 어떻게 하는건데...
두 번째로 시도한 방법 🔥
👉 DUser.Rename("바꾸고 싶은 이름");
한국어로 도저히 안나와서 영어로 쳐서 구글을 뒤지던 중 발견함
AD에서 사용자 CN 바꾸려면 Rename을 이용하면 된다!
이제 정말 되겠지 했는데 또 오류가 났다.
다시 또 침착하게 구글을 찾아보니 다음과 같이 사용하면 된다고 했다.
세 번째로 시도한 방법 🔥
👉 DUser.Rename("CN=" + "바꾸고 싶은 이름");
마지막으로 이렇게 하니 active directory 사용자 CN 값이 드디어 바뀌었다
오늘도 이렇게 한 건 해결
using (DirectoryEntry DUser = new DirectoryEntry(UserLdap)
{
//1. 첫번째 시도한 방법 (오류발생)
//DUser.Properties["cn"].Value = pUserReNM;
//DUser.CommitChanges();
//DUser.RefreshCache();
//2. 세번째 방법 (rename 성공)
DUser.Rename("CN=" + newNM);
DUser.CommitChanges();
DUser.RefreshCache();
}
✅ CN 변경하면서 출력되었던 오류들
System.DirectoryServices.DirectoryServicesCOMException (0x80072035): 요청을 처리하지 않습니다.
System.DirectoryServices.DirectoryServicesCOMException (0x80072014): 요청한 작업이 개체의 클래스와 연관된 하나 이상의 제약 조건을 만족하지 않습니다.
System.DirectoryServices.DirectoryServicesCOMException (0x8007202B): 서버에서 참조를 반환했습니다.
