Как создать DirectoryEntry для конкретной группы - PullRequest
1 голос
/ 02 апреля 2012

Я хочу получить DirectoryEntry объект, например, Группа Домен-Пользователи. Я перехожу по этой ссылке , чтобы удалить пользователя из определенной группы.

strGroup = "CN=TestGroup,OU=TestOU";    
objGroup = objADAM.Children.Find(strGroup, "group");

Этот код взят из примера MSDN. Если я нахожу свою группу в апплете Active Directory - пользователи и компьютеры, то есть CN и OU?

EDIT: Чтобы быть более общим, где я могу найти это имя для Find метода?

Из MSDN:

имя
Тип: System.String
Имя дочернего объекта каталога для поиска.

Это выдающееся имя или еще?

1 Ответ

1 голос
/ 03 апреля 2012

Вы смешиваете две отдельные среды, которые имеют значительное перекрытие.DirectoryEntry является частью пакета DirectoryServices, GetObject - это инструмент VBA, который взаимодействует с ActiveDs.dll.

Если это должен быть скрипт Visual Basic, то у вас есть эквивалент DirectoryEntry из метода GetObject () или Find ().Если вам нужен доступ к свойствам, используйте метод object.Get ("property_name") (возвращает массив для многозначных атрибутов)

Если вы можете поменять платформу разработки на что-нибудь .NET, у вас будет доступ ко всемDirectoryServices вы хотите.

РЕДАКТИРОВАТЬ: Если это приложение C # .NET, вот код для использования

private static DirectoryEntry getGroupDE(String group)
{
    String adserver = "dc.companyname.com";
    String searchroot = "ou=Groups,dc=companyname,dc=com";
    DirectorySearcher ds = new DirectorySearcher();
    ds.SearchRoot = new DirectoryEntry(String.Format("LDAP://{0}/{1}",adserver,searchroot));
    ds.SearchScope = SearchScope.Subtree;
    ds.Filter = String.Format("(&(objectCategory=group)(sAMAccountName={0}))",group);
    SearchResult sr = ds.FindOne();
    if (sr == null)
    {
        return null;
    }
    return sr.GetDirectoryEntry();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...