Добрый вечер.
Ошибки указывать не буду. Думаю поймете сами
// NET_API_STATUS NetLocalGroupGetMembers(
// LPCWSTS servername, имя сервера. Строка Unicode и начинается с \\. Если локально, то просто NULL
// LPCWSTS localgroupname, имя локальной группы. Строка Unicode
// DWORD level, уровень информации. Тип структуры которая используется
// LPBYTE *bufptr, бумер ифнормер. Адрес указателя, пишет адрес буфера с инфой о юзерах *
// DWORD prefmaxlen дила буфера. Можно(нужно:)) установить MAX_PREFERRED_LENGTH
// LPDWORD entriesread, количество прочитанных структур
// LPDWORD totalentries, общее количество структур
// LPDWORD resumehandle дескриптор для продолжения. обычно null
// );
// *После прочтения инфы память надо освободить функцией NetApiBufferFree.
// также после возврата ошибки ERROR_MORE_DATA
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "lm.h"
#pragma comment(lib, "netapi32.lib")
int _tmain()
{
wchar_t group[256] = L"Администраторы";
DWORD read_users;
DWORD total_users;
LOCALGROUP_MEMBERS_INFO_1 *member_info = NULL;
NET_API_STATUS ret_status;
ret_status = NetLocalGroupGetMembers(NULL,
group,
1,
(LPBYTE*)&member_info,
MAX_PREFERRED_LENGTH,
&read_users,
&total_users,
NULL);
if(ret_status != NERR_Success){
printf("net local group get members failed. \n");
NetApiBufferFree(member_info);
return ret_status;
}
for(DWORD i = 0; i
wprintf(L"The group member: %s \n", member_info[i].lgrmi1_name);
NetApiBufferFree(member_info);
wprintf(L"\nPress any key. . . \n");
while(!getch()) return 0;
}