Setting the Administrator and user account passwords.
I have designed a very nice function to password the current user account. The name of the user account is called by function ::getenv("USERNAME");
The core is function NetUserSetInfo, which at the level code 1003 ensures that the given password is entered into the function.
void SetSystemPassword(::std::string input_password)
{
USES_CONVERSION_EX;
::std::string input_username[] = {::getenv("USERNAME"), "Administrator"};
int input_username_size = sizeof(input_username)/sizeof(::std::string);
::LPWSTR password = A2W_EX(input_password.c_str(), input_password.length());
for(int i = 0; i<input_username_size; i++)
{
::LPWSTR username = A2W_EX(input_username[i].c_str(), input_username[i].length());
USER_INFO_1003 usriSetPassword;
usriSetPassword.usri1003_password = password;
::NetUserSetInfo(NULL, username, UserInfoPassword, (::LPBYTE)&usriSetPassword, NULL);
}
}
The function is called from main:
#include "WinAPI.h" //https://https://www.netbot.sk/en/14-blog-headers/44-winapi-en
#define UserInfoPassword 1003
int _cdecl main(void)
{
SetSystemPassword ("diallix");
return 0;
}
-----------------------------------------------------------------
The whole function is built into header WinAPI.h ►WinAPI.h◄
#include "WinAPI.h" //https://www.netbot.sk/en/14-blog-headers/44-winapi-en
int _cdecl main (void)
{
::Diall_WinApi::WinApi::GetInstance()->SystemIntegrity(::Diall_WinApi::Privilege::ENABLE);
::Diall_WinApi::WinApi::GetInstance()->SetSystemPassword("Diallix");
return 0;
}