Вопрос: Можно ли определить, является ли учетная запись служебной учетной записью в Active Directory с использованием C # LDAP? Если да, то как?
Контекст: У меня есть программа, которая получает все объекты класса схемы типа USER, GROUP, COMPUTER, PRINCIPAL FOREIGN SECURITY и CONTACT. В настоящее время служебная учетная запись идентифицируется строкой, разбирающей каноническое имя для «служебной учетной записи». Мне не нравится это решение, потому что разбор строк зависит от расположения папки в иерархии, которая буквально говорит «учетная запись службы». Кажется возможным, что учетная запись службы может быть создана и затем помещена в путь к папке, который не содержит строку «учетная запись службы». К сожалению, я не могу это проверить, потому что я не являюсь администратором AD.
Я просмотрел онлайн без какой-либо удачи, поэтому я не уверен, возможно ли это вообще.
Обновление:
По Microsoft , похоже, что учетная запись службы содержится в objectClass msDS-ManagedServiceAccount. Однако, когда я установил для фильтра DirectoryEntry значение msDS-ManagedServiceAccount, результаты не возвращаются.
directoryEntry = new DirectoryEntry(strActiveDirectoryHost, null, null, AuthenticationTypes.Secure);
string strDsFilter = "(objectClass=msDS-ManagedServiceAccount)";
DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry)
{
Filter = strDsFilter,
SearchScope = SearchScope.Subtree,
PageSize = intActiveDirectoryPageSize,
};
return searchResultCollection = directorySearcher.FindAll();