윈도우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;
}