The following code shows how to reset windows local user passwd by using Win32 API
NetUserSetInfo(),
the windows user who call this procedure should have administrator previlege on the local computer, other wise it will fail.
在我本机测试过了,好使!
Example:
void CBW_AD_migration_helperDlg::OnBnClickedBtnsetadminpassword()
{
if(TRUE==winadminapi::myNetUserSetInfo(L"Administrator",L"passwordxxxx"))
MessageBox("password for local Administrator set");
}
/
// Filename: winadminapi.h
class winadminapi
{
public:
winadminapi(void);
~winadminapi(void);
static BOOL myNetUserSetInfo(LPCWSTR lpUsername,LPWSTR lpPasswd);
} ;
/
// Filename: winadminapi.cpp
winadminapi::winadminapi(void)
{
}
winadminapi::~winadminapi(void)
{
}
/*
* Function: set windows local user password without knowing its current passwd
* Input: Username, Passwd
* Return: TRUE if successfully set the password for the specified local user, FALSE otherwise
*/
BOOL winadminapi::myNetUserSetInfo(LPCWSTR lpUsername,LPWSTR lpPasswd)
{
USER_INFO_1003 ui;
NET_API_STATUS nStatus;
ui.usri1003_password = lpPasswd;
nStatus = NetUserSetInfo(
NULL, //LPCWSTR servername, when NULL the local computer is used
lpUsername, // LPCWSTR username,
1003, // DWORD level,
(LPBYTE) &ui, // LPBYTE buf,
NULL // LPDWORD parm_err
);
if (nStatus == NERR_Success)
return TRUE;
else
return FALSE;
}
the windows user who call this procedure should have administrator previlege on the local computer, other wise it will fail.
在我本机测试过了,好使!
Example:
void CBW_AD_migration_helperDlg::OnBnClickedBtnsetadminpassword()
{
if(TRUE==winadminapi::myNetUserSetInfo(L"Administrator",L"passwordxxxx"))
MessageBox("password for local Administrator set");
}
/
// Filename: winadminapi.h
class winadminapi
{
public:
winadminapi(void);
~winadminapi(void);
static BOOL myNetUserSetInfo(LPCWSTR lpUsername,LPWSTR lpPasswd);
} ;
/
// Filename: winadminapi.cpp
winadminapi::winadminapi(void)
{
}
winadminapi::~winadminapi(void)
{
}
/*
* Function: set windows local user password without knowing its current passwd
* Input: Username, Passwd
* Return: TRUE if successfully set the password for the specified local user, FALSE otherwise
*/
BOOL winadminapi::myNetUserSetInfo(LPCWSTR lpUsername,LPWSTR lpPasswd)
{
USER_INFO_1003 ui;
NET_API_STATUS nStatus;
ui.usri1003_password = lpPasswd;
nStatus = NetUserSetInfo(
NULL, //LPCWSTR servername, when NULL the local computer is used
lpUsername, // LPCWSTR username,
1003, // DWORD level,
(LPBYTE) &ui, // LPBYTE buf,
NULL // LPDWORD parm_err
);
if (nStatus == NERR_Success)
return TRUE;
else
return FALSE;
}