C# добавить пользователя в Active Directory, используя службы каталогов, свойство Enabled не работает

Я использую C# для создания новых учетных записей активного каталога на лету, например так:

        public static void CreateUser(string userName, string password){
            UserPrincipal user = new UserPrincipal(ContextType.Domain);
            user.SetPassword(password);
            user.Name = userName;
            user.SamAccountName = userName;
            user.UserPrincipalName = userName;
            user.Enabled = true;
            user.Save();
        }

Проблема в том, что user.Enabled = true; линия, кажется, ничего не делает. Учетная запись создана успешно, но мне все равно придется вручную войти в учетную запись с помощью AD Explorer и установить ее на включен.

Что здесь может быть не так?

1 ответ

Решение

Для того, чтобы учетная запись пользователя была Enabled в Active Directory он должен иметь пароль. Установите пароль и сначала создайте объект учетной записи, а затем включите его:

public static void CreateUser(string userName, string password){
    UserPrincipal user = new UserPrincipal(ContextType.Domain);
    user.SetPassword(password);
    user.Name = userName;
    user.SamAccountName = userName;
    user.UserPrincipalName = userName;
    user.Save();

    // Now that the account has been created and has a password, you can enable it
    user.Enabled = true;
    user.Save();
}
Другие вопросы по тегам