注意:该方法会导致被改密码的用户数据丢失
#include <Windows.h>
#include <LM.h>
#include <time.h>
void ChangePwd()
{
USER_INFO_0 *pUserInfo0 = NULL;
USER_INFO_1 *pUserInfo1 = NULL;
DWORD dwEnRead = 0;
DWORD dwToRead = 0;
NET_APISTATUS status;
status = NetUserEnum(NULL, 0, 0, (LPBYTE*)pUserInfo0, MAX_PREFERREAD_LENGTH,&dwEnRead,&dwToRead,NULL);
if((status == NERR_Success)||(status == ERROR_MORE_DATA))
{
for(int i = 0; i < dwEnRead; i++)
{
//打印机子上的所有用户
printf("%s\n",(pUserInfo0+i)->usri0_name);
ChangeUserPwd((pUserInfo0+i)->usri0_name);
}
}
if(!pUserInfo0)
{
NetApiBufferFree(pUserInfo0);
pUserInfo0 = NULL;
}
return;
}
int ChangeUserPwd(LPWSTR pAccount)
{
NET_APISTATUS status;
USER_INFO_1003 userPwd = { L"123" };
DWORD dwErr = 0;
status = NetUserSetInfo(NULL,pAccount,1003,(PBYTE)&userPwd,&dwErr);
if(status != NERR_Success)
{
printf("err %d\n",status);
}
return status;
}