3

This is a snippet demonstrating how to create a new local Windows account, and have it show up in the Users section of the Control Panel. You will need to reference the System.DirectoryServices.AccountManagement Namespace

/// <summary>
/// method to create 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;
    }
    
}
3
Contributors
2
Replies
5
Views
6 Years
Discussion Span
Last Post by nelsonddon
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.