Как получить список пользователей, которым разрешен доступ?
От: Аноним  
Дата: 14.07.04 12:15
Оценка:
Господа, подскажите,
Использую NetUserEnum, она возвращает только локальных пользователей,
но не доменных, которые зарегистрированны на данной машине и которым назначены, скажем, админские права.

Класс WMI Win32_SystemUsers тоже возвращает не всех пользователей.

Вопрос:

Как получить список пользователей, отображающийся в User Accounts из Control Panel
Re: Как получить список пользователей, которым разрешен дост
От: Burd Украина http://proxysearcher.sourceforge.net
Дата: 14.07.04 12:23
Оценка:
Список доменных пользователей сохраняется на контроллере домена. Если у вас контроллер на платформе Win2000, тогда это означает, что там установлено Active Directory, работа из активными директориями может осуществлятся через протокол ldap. (см. функцию ldap_open и дальше). Возможна работа также через ADSI — комовсие обьекты.
Любая задача имеет решение, даже когда решения не существует
Re: Как получить список пользователей, которым разрешен дост
От: Denis Россия http://blogs.gotdotnet.ru/personal/Denis
Дата: 14.07.04 12:28
Оценка:
А>Как получить список пользователей, отображающийся в User Accounts из Control Panel
А что там за пользователи отображаются? забыл что что там за диалог, сейчас под рукой нет ничего кроме 2003.
В чём изначальная задача?
... << Rsdn@Home 1.1.4 beta 1 >>
Re[2]: Как получить список пользователей, которым разрешен д
От: borey  
Дата: 14.07.04 16:21
Оценка:
Здравствуйте, Denis, Вы писали:

А>>Как получить список пользователей, отображающийся в User Accounts из Control Panel

D>А что там за пользователи отображаются? забыл что что там за диалог, сейчас под рукой нет ничего кроме 2003.
D>В чём изначальная задача?

В User Accounts перечислены локальные пользователи машины, а так же те доменные пользователи, которым дан доступ к данной машине.
Т.е. фактически все пользователи, которые являются членами локальных групп данной машины.

Задача состоит в том, что бы показать этих пользователей в списке.
Win32_SystemUsers выводит только тех пользователей, для которых есть профайл, т.е. не всех из данного диалога.
NetEnumUsers возвращает только локальных пользователей.

Я нашел решение проблемы, используя WMI, но это подход можно применить и к NetXXX API.

Первым WMI запрсом я выбираю все локальные группы

SELECT * FROM Win32_Group Where Domain='HOST'

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

SELECT * FROM Win32_GroupUser WHERE GroupComponent = \"Win32_Group.Domain='HOST',Name='GROUP'\"";

Использование SELECT в данном случае объясняется тем, что Microsoft оптимизировало запрос именно по этому классу а не по ASSOCIATORS, и то только с Win2K SP3.

В ообщем, желаемого результата я добился.
Re[2]: Как получить список пользователей, которым разрешен д
От: borey  
Дата: 14.07.04 16:23
Оценка:
Здравствуйте, Burd, Вы писали:

B>Список доменных пользователей сохраняется на контроллере домена. Если у вас контроллер на платформе Win2000, тогда это означает, что там установлено Active Directory, работа из активными директориями может осуществлятся через протокол ldap. (см. функцию ldap_open и дальше). Возможна работа также через ADSI — комовсие обьекты.



Спасибо за ответ, но это не совсем то, что мне нужно. Мне нужны пользователи, зарегистрированные на локальной машине, в том числе и из домена. Вне зависимости — есть атм ADSI или нет.
Re[3]: Как получить список пользователей, которым разрешен д
От: Denis Россия http://blogs.gotdotnet.ru/personal/Denis
Дата: 14.07.04 16:34
Оценка:
понятно, через API это так
NetLocalGroupEnum
NetLocalGroupGetMembers

приэтом проверить что не на контроллере домена находимся.. у него нет локальных...
... << Rsdn@Home 1.1.4 beta 1 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.