/// <summary>
/// method for creating a new local Windows user account
/// </summary>
/// <param name="username">Username of the new account</param>
/// <param name="password">Password of the new account</param>
/// <param name="displayName">Account display name</param>
/// <param name="description">Account description</param>
/// <param name="canChangePwd">Value of whether the new user can change their password</param>
/// <param name="pwdExpires">Value determining if the password ever expires</param>
public static bool CreateLocalWindowsAccount(string username, string password, string displayName, string description, bool canChangePwd, bool pwdExpires)
{
try
{
PrincipalContext context = new PrincipalContext(ContextType.Machine);
UserPrincipal user = new UserPrincipal(context);
user.SetPassword(password);
user.DisplayName = displayName;
user.Name = username;
user.Description = description;
user.UserCannotChangePassword = canChangePwd;
user.PasswordNeverExpires = pwdExpires;
user.Save();
//now add user to "Users" group so it displays in Control Panel
GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "Users");
group.Members.Add(user);
group.Save();
return true;
}
catch (Exception ex)
{
MessageBox.Show("Error creating account: {0}", ex.Message);
return false;
}
}