Как создать новую учетную запись пользователя без пароля - PullRequest
0 голосов
/ 30 мая 2018

Я хотел бы программно добавить нового локального пользователя на компьютер.Я нашел код здесь .Но мне бы хотелось, чтобы пользователь мог войти без пароля.Я видел, что есть опция UserPrincipal.PasswordNotRequired=true, но если я не использую SetPassword(), это выдает мне исключение:

Пароль не соответствует требованиям политики паролей ...

Можно ли создать нового пользователя без пароля?

РЕДАКТИРОВАТЬ: текущий код, который успешно добавляет нового пользователя, но я должен предоставить пароль.Это полная копия с предоставленной ссылки:

PrincipalContext oPrincipalContext = GetPrincipalContext();

UserPrincipal oUserPrincipal = new UserPrincipal(oPrincipalContext);
oUserPrincipal.Name = sUserName;
oUserPrincipal.SetPassword(sPassword);
oUserPrincipal.DisplayName = windowsUsername.Text;
oUserPrincipal.PasswordNeverExpires = true;
oUserPrincipal.PasswordNotRequired = true;
oUserPrincipal.Save();

GroupPrincipal usersGroup = GroupPrincipal.FindByIdentity(oPrincipalContext, "Users");
usersGroup.Members.Add(oUserPrincipal);
usersGroup.Save();

1 Ответ

0 голосов
/ 30 мая 2018

Есть две возможные причины, по которым ваш код не работает.

  1. Вы не работаете как администратор
  2. Ваш компьютер находится в домене с групповой политикой, запрещающей то, что вы хотите сделать.

Приведенный ниже код был протестирован на моей машине и работает.

void Main()
{
    PrincipalContext oPrincipalContext = GetPrincipalContext();

    UserPrincipal oUserPrincipal = new UserPrincipal(oPrincipalContext);
    oUserPrincipal.Name = "TestUser";
    oUserPrincipal.SetPassword("");
    oUserPrincipal.DisplayName = "TestUser";
    oUserPrincipal.PasswordNeverExpires = true;
    oUserPrincipal.PasswordNotRequired = true;
    oUserPrincipal.Save();

    GroupPrincipal usersGroup = GroupPrincipal.FindByIdentity(oPrincipalContext, "Users");
    usersGroup.Members.Add(oUserPrincipal);
    usersGroup.Save();
}

PrincipalContext GetPrincipalContext()
{
    var dc = new PrincipalContext(ContextType.Machine);
    return dc;
}

Что вы можете попробовать: 1. Попробуйте на компьютере, который не входит в ваш домен.2. Попробуйте на компьютере, к которому не применены групповые политики.3. Запустите приложение от имени администратора на компьютере, с которым у вас возникла проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...