winapi — Как проверить ADuser & quot; Срок действия пароля не истекает & quot; свойства проверяют или не используют C ++ Win32API?

я использую C ++ Win32 API …

я хочу знать значение свойств политик паролей пользователей …

то есть «Пароль никогда не истекает», как проверить, проверено ли это свойство или нет с помощью Win32 API C ++?

0

Решение

Вы можете использовать интерфейс COM IADsUser.
Увидеть этот пример MSDN для включения флага «никогда не истекает»

Вы можете использовать первую часть, прежде чем грести V_I4(&var) |= ADS_UF_DONT_EXPIRE_PASSWD; — заменить его на if (V_I4(&var) & ADS_UF_DONT_EXPIRE_PASSWD) { /* option is enabled! your code here */}

Надеюсь это поможет. И это работа 🙂

1

Другие решения

Пожалуйста, проверьте это … Надеюсь, что это может решить ваши проблемы

WriteLogMessage («Обработка:» + UserEntry.Name);

                    WriteLogMessage("Max Password Age:" + iMaxPwdAge);

//Console.WriteLine("Account control:" + UserEntry.Properties["userAccountcontrol"].Value);

int userAccountControl = Convert.ToInt32(UserEntry.Properties["userAccountcontrol"].Value);
if ((userAccountControl & ADS_DONT_EXPIRE_PASSWORD) > 0)
{
WriteLogMessage("Password never expires for:" + UserEntry.Name);
}
else
{
WriteLogMessage("Password expiration date found for:" + UserEntry.Name);

ActiveDs.IADsUser native = (ActiveDs.IADsUser)UserEntry.NativeObject;

DateTime passwordLastChanged = new DateTime(9999, 1, 1);
try

Иначе без сценария, если вы хотите использовать, пожалуйста, используйте сторонний инструмент. Он автоматически обновит вас, если срок действия пароля истек, а пароль никогда не истек.

1