Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как получить список пользователей домена ? / 6 сообщений из 6, страница 1 из 1
26.05.2006, 19:57
    #33755452
_Ildar_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
Доброго времени суток!

Господа подскажите пожалуйста, как на Visual C++ 6.0 можно получить список пользователей домена Windows. На серваке стоит серверная ОС Windows 2003, на ней поднят домен.

Речь идет именно о именах пользователей домена Windows, а не о компах в сетевом окружении. Порылся в MSDN не нашел...

Может кто знает как ?

Подскажите пожалуйста, очень Вас прошу...

Заранее огромное спасибо!
...
Рейтинг: 0 / 0
26.05.2006, 20:38
    #33755487
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
в MSDN функции NetQueryDisplayInformation и NetUserEnum
...
Рейтинг: 0 / 0
26.05.2006, 20:41
    #33755491
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
void ShowNTUsers() 
{ 
   DWORD dwTotalEntries; 
   DWORD dwEntriesRead; 
   DWORD dwPrefmaxlen =  256 ; 
   USER_INFO_10 * theEntries = new USER_INFO_10[ 256 ];
   char szData[ 4096 ];
   char chLine[ 256 ];
   NET_API_STATUS napistat; 
   WCHAR cServer[ 50 ];// = "\\\\bigone";
   HANDLE hFile;
   DWORD dwWr;

   MultiByteToWideChar(CP_ACP, MB_COMPOSITE, "\\\\bigone\0",  9 , cServer,  50 );
   napistat = ::NetUserEnum((LPCWSTR) cServer,  10 , FILTER_NORMAL_ACCOUNT, (LPBYTE*)&theEntries , MAX_PREFERRED_LENGTH,                            &dwEntriesRead, &dwTotalEntries, NULL);
 
//Функция возвращает только 8 записей вместо 175
//dwTotalEntries = 175
//dwEntriesRead = 8
//napistat = 234 -> ERROR_MORE_DATA "More data is available"

   if (napistat == NERR_Success) 
   { 
      MessageBox (NULL, "NetUserEnum failed", "ERROR", MB_OK); 
      return; 
   } 

    
   hFile = (HANDLE)CreateFile("users.txt\0", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 
          FILE_ATTRIBUTE_NORMAL, NULL);
    chLine[ 0 ] = '\0';
    szData[ 0 ] = '\0';

   for (int i= 0 ; i< dwEntriesRead; i++) 
   { 
       wsprintf(chLine, "%ls\t%ls\t%ls\r\n", theEntries[i].usri10_name, 
           theEntries[i].usri10_full_name, theEntries[i].usri10_comment);
       strcat(szData, chLine);
       chLine[ 0 ] = '\0';
        
   }
   

   WriteFile(hFile,szData, strlen(szData), &dwWr, NULL); 
   
   ::NetApiBufferFree (theEntries);

   CloseHandle(hFile);
}
...
Рейтинг: 0 / 0
26.05.2006, 23:14
    #33755610
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
есть такая классная штука ADSI. в MSDN в частности.

искать можно через DCOM объекты (IDirectorySearch) или через ADO, как удобно.
...
Рейтинг: 0 / 0
27.05.2006, 18:34
    #33756144
_Ildar_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
Процедура отлично работает! Спасибо!

У меня еще один, возможно дурацкий, вопрос...

А как можно определить текущего пользователя домена, того, который зашел под своим именем и паролем на комп. ?

Заранее огромное спасибо!
...
Рейтинг: 0 / 0
27.05.2006, 18:50
    #33756151
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить список пользователей домена ?
GetUserName?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как получить список пользователей домена ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]