Используете ли вы режим приложения Active Directory (ADAM)? Эта строка заставляет меня думать, что вы:
dirEntry.Properties["msDS-UserAccountDisabled"].Value = "FALSE";
Этот атрибут не существует в обычном Active Directory. Итак, если это работает для вас, тогда вы используете ADAM.
Если вы используете ADAM, используйте атрибут msDS-UserDontExpirePassword
, чтобы пароль не истек:
dirEntry.Properties["msDS-UserDontExpirePassword"].Value = true;
Если вы не используете ADAM, значит "msDS-UserAccountDisabled
не существует, и вам не следует его использовать. Вместо этого используйте userAccountControl
, чтобы установить оба.
Поскольку вы только что создали учетную запись, вам не нужно беспокоиться о том, какое значение уже было, вы можете просто установить его на конкретное значение c. Предполагая, что вы хотите, чтобы он был включен с флагом «не истекает срок действия пароля», вы можете использовать это:
//NORMAL_ACCOUNT | DONT_EXPIRE_PASSWORD
dirEntry.Properties["userAccountControl"].Value = 0x0200 | 0x10000;
Вы можете оставить каждое значение разделенным таким образом или просто использовать полученное десятичное значение 66048
.