Windows Programming

[WINDOWS] 사용자 계정의 패스워드를 Disable 시키는 함수(User Lock)

macro 2007. 3. 19. 15:25
반응형

윈도우2000 에서 어떤 계정이 GINA에서 로그인할 때 그 사용자의 패스워드를 disable 시켜서 로그인 하지 못하게 할때 쓰기 위해 만들었던 함수이다.
파라미터로 유저이름을 넘겨주면, 해당 유저를 lock한다.


int lock_user(char * user_name)
{
 DWORD dwLevel = 2;
 USER_INFO_2 ui, *pui;
 NET_API_STATUS nStatus;
 WCHAR  wszUserName[UNLEN+1]; // Unicode user name
 
 MultiByteToWideChar( CP_ACP
  , 0
  , user_name
  , strlen(user_name)+1
  , wszUserName
  , sizeof(wszUserName)/sizeof(wszUserName[0])
  );

 nStatus = NetUserGetInfo(NULL,
                            wszUserName,
                            dwLevel,
                            (LPBYTE *)&pui);

 if (nStatus != NERR_Success)
   return FALSE;
 ui = *pui;
 if (pui != NULL)
                NetApiBufferFree(pui);

 //account disable setting
 ui.usri2_flags = UF_SCRIPT | UF_ACCOUNTDISABLE;
 nStatus = NetUserSetInfo(NULL,
                            wszUserName,
                            dwLevel,
                            (LPBYTE)&ui,
                            NULL);
 
if (nStatus != NERR_Success)
   return FALSE;

return TRUE;
}

반응형