Как найти windows отключенных и заблокированных учетных записей в Active Directory в C ++ - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над проектом C ++ и хотел найти способ найти отключенные / заблокированные учетные записи в Active Directory. Я нашел ниже API C ++, но не уверен, решат ли они мою цель или их некоторые другие API -

https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/nf-lmaccess-netuserenum

https://docs.microsoft.com/en-us/windows/win32/api/lmaccess/nf-lmaccess-netusergetinfo

Кроме того, по причинам, не зависящим от меня, я должен использовать только C ++, а не другие вещи, такие как сценарий PowerShell и т. Д. c

1 Ответ

2 голосов
/ 10 июля 2020

Вот примеры того, как это сделать на C ++: Поиск с помощью интерфейса IDirectorySearch

Когда вы дойдете до шага, на котором вы вызываете ExecuteSearch, запрос LDAP, который вы хотите использование будет:

(&(objectCategory=person)(objectClass=user)(|(userAccountControl:1.2.840.113556.1.4.803:=2)(lockoutTime>=1)))

Этот запрос ищет только учетные записи пользователей, где либо:

  • установлен второй бит атрибута userAccountControl, это означает, что он отключен (это странное число - это оператор LDAP_MATCHING_RULE_BIT_AND, как описано здесь , что является просто побитовым И) или
  • атрибут lockoutTime 1 или более, что означает, что он заблокирован.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...