'ChangePassword'에 해당되는 글 1건

  1. 2010.05.07 [C#] 원격 서버 계정 비밀번호 변경
2010. 5. 7. 17:35

관리하는 서버가 많을 경우 손쉽게 서버의 계정 비밀번호를 변경하고 싶을 수 있다.
이런 고민에서 시작해서 만들어 보았다. 
(여러 네트워크 환경에서 확인 해보지 못했고 동일 네트워크 환경에서는 정상적으로 동작하는 것을 확인했다.)

1. 이전 비밀번호를 알고 새 비밀번호로 변경하고자 할 경우
using System.DirectoryServices; // 참조추가를 해야 사용 가능하다.
...
string userPath = string.Format("WinNT://{0}/{1}", TargetServer, UserName);
using (DirectoryEntry userEntry = new DirectoryEntry(userPath))
{
object[] password = new object[] { this.txtOldPw.Text, this.txtNewPw.Text };
object ret = userEntry.Invoke("ChangePassword", password);
userEntry.CommitChanges();
}


2. 이전 비밀번호를 몰라도 새 비밀번호로 리셋하고 싶을 경우
string userPath = string.Format("WinNT://{0}/{1}", TargetServer , UserName);
using (DirectoryEntry userEntry = new DirectoryEntry(userPath))
{
object[] password = new object[] { this.txtNewPw2.Text };
object ret = userEntry.Invoke("SetPassword", password);
userEntry.CommitChanges();
}


참고로 TargetServer는 IP로 접근할 경우 오류가 발생하였고.. 컴퓨터명으로 접근해야 정상적으로 처리가 되었다.
그리고 administrator 계정의 비밀번호도 변경이 가능했다.

샘플

참고

Posted by CoolDragon