Q&A

  • 윈도우즈 사용자 등록
윈도우즈 NT 혹은 2000 에서 시스템 사용자등록할 수 있나요 ??

ㅡ..ㅡ;?  

API 함수나.. 혹은 참고할 내용이라도.. 좀 갈쳐주세요.
2  COMMENTS
  • Profile
    윤일영 2002.01.15 04:57

    음..저와 같은 문제에 ...헐..기쁩당.
    그나저나 정보있음..서로 좀 도와주죠 ..답변이 아니라 죄송합다
  • Profile
    강철구 2002.02.02 01:48
    저는 오래되서 잘 기억이 나지를 않습니다.
    아니 사용을 하지 않아서 설정을 못하겠군요

    일단 이렇습니다.

    마이크로소프트에 가시면 SDK를 받을수 있을겁니다.
    그것을 받고 어떻게 하던데 여기가 문제...

    다음에는 프로그램만...

    USES절에
    uses ActiveX,        // COM Moniker 내용을 위한 것...
         ActiveDs_TLB,   // 위에서 만든 타입 라이브러리
         ComObj;         // OleCheck 및 기타 COM 함수들을 위한

    우선 공통함수 선언을
    function TForm1.GetObject(const Name: string): IDispatch;
    var
      Moniker: IMoniker;
      Eaten: integer;
      BindContext: IBindCtx;
      Dispatch: IDispatch;
    begin
      Eaten := 1;
      OleCheck(CreateBindCtx(0, BindContext));
      OleCheck(MkParseDisplayName(BindContext,
                                  PWideChar(WideString(Name)),
                                  Eaten,
                                  Moniker));
      OleCheck(Moniker.BindToObject(BindContext, NIL, IDispatch,
                Dispatch));

      Result := Dispatch;
    end;


    계정을 추가하시려면

    var
      Usr:  IADsUser;
      Comp: IADsContainer;
      Grp: IADsGroup;
    begin
      Result := True;
      try
        Comp := GetObject(vComName+',computer') as IADsContainer;
        Usr := Comp.Create('user', UserName) as IADsUser;
        Usr.FullName := 'John Smith';
        Usr.Description := 'DSys WOSD Program Manager';
        Usr.SetInfo;

        Grp := GetObject(vComName+'/USERS') as IADsGroup;
        Grp.Add(vComName+'/'+UserName);
        Grp.SetInfo;
      except
          Result := False;
      end;



    계정이름 변경

    var
      Usr:  IADsUser;
      Comp: IADsContainer;
      Grp: IADsGroup;
    begin
      Result := True;
      try
        Comp := GetObject(vComName+',computer') as IADsContainer;
        Comp.MoveHere(vComName+UserName+',user',NewUserName);
        Usr.SetInfo;
      except
          Result := False;
      eND

    게정제거
    var
      Comp: IADsContainer;
      Grp: IADsGroup;
    begin
      Result := True;
      try
        Comp := GetObject(vComName+',computer') as IADsContainer;
        Grp := GetObject(vComName+'/USERS') as IADsGroup;
        Comp.Delete('user', UserName);
      except
          Result := False;
      end;

    암호 변경

    var
      Usr: IADsUser;
      Grp: IADsGroup;
    begin
      Result := True;
      try
        Usr := GetObject(vComName+'/'+UserName+',user') as IADsUser;
        Grp := GetObject(vComName+'/USERS') as IADsGroup;
        Usr.
        Usr.SetPassword(NewPwd);
        Usr.SetInfo;
      except
          Result := False;
      end;


    대략 이렇습니다.
    SDK를 무엇인가 인스톨 한것 같은데 거기가 기억이 나지를 않아요 죄송

    연구하시면 좋은 답 나올겁니다,

    마음에 뒤숭숭하게 만들었는지...
    제대로 안돌아가면 어쩌지?............

    단 ACTIVEDIRECTORY 계정이던가  그것은 이명령이 적용되지 않는걸고 알고 있습니다.