View
AD :: Active directory 사용자 이름 CN값 변경하기 (renaming a user, change cn property of
curioser 2022. 3. 6. 00:13
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): 서버에서 참조를 반환했습니다.

'Server' 카테고리의 다른 글
Network : HTTP Request Message (HTTP 요청 메세지) (0) | 2020.05.12 |
---|---|
Network : HTTP 란 ? ( Overview of HTTP) (0) | 2020.05.07 |
Spring : 스프링 프레임웍에 Spring Security 적용하기 -1 (0) | 2020.02.08 |
Server : Sitemesh 적용하기 (0) | 2020.01.11 |
JSP : URI/ ContextPath/ URL/ServletPath의 차이점 (0) | 2019.12.31 |