Я пишу приложение, которое связывается с Active Directory, и мне нужно проверить, как оно себя ведет, когда пароль учетной записи пользователя в Active Directory имеет только несколько дней до истечения срока его действия.
Поэтому мой вопрос таков: как мне установить дату окончания срока действия пароля определенной учетной записи пользователя Active Directory на дату, такую как «сегодня + 2 дня» (конечно, без изменения политики истечения срока действия пароля!). Я ищу либо ручной способ сделать это, либо программное решение (например, на основе VBScript или C #).
Я уже попробовал эти два подхода:
Установите pwdLastSet
с помощью ADSIEdit. Проблема: я могу изменить значение только на 0. Другие значения отклоняются с кодом ошибки 0x57 (неверный аргумент).
Использование IADsUser::PasswordExpirationDate
: Проблема: установка PasswordExpirationDate
завершается с ошибкой с кодом 0x800A01BD. (См. Пример кода ниже.)
Пример кода:
strUserName = "test97"
Set objUser = GetObject("LDAP://CN=" & strUserName & ",CN=Users,DC=mydomain,DC=com")
dtmDate = Now+2
objUser.PasswordExpirationDate = dtmDate
objUser.SetInfo
MsgBox "Successfully changed password expiration date"