View

 



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): 서버에서 참조를 반환했습니다.

Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31