сбор информаций о локальных группах и пользователях в wk, xp
От: kulsary  
Дата: 30.04.07 08:16
Оценка:
среда программирования vc 4.0 ос хр sp2
у меня при обращений к функциям NetLocalGroupEnum, NetLocalGroupGetMembers возникает ошибка(через F5)

First-chance exception in SoftCollector.exe (NETAPI32.DLL): 0xC0000005: Access Violation.

некоторые работают NetUserGetInfo, NetGetDCName
вот код

BOOL CInfoCollector::GetGoupsName( char *ServerName,char *GoupsName )
{
WCHAR servername[256]; // Unicode user name
WCHAR workgroup[256]; // Unicode user name

NET_API_STATUS netok;
unsigned ientry;

PLOCALGROUP_INFO_1 bufptr1;
DWORD entriesread;
DWORD totalentries;
DWORD resumehandle;


/* We use parameter #1 as server name. */
/* Convert it to wide string */
MultiByteToWideChar( CP_ACP, 0, ServerName,
strlen(ServerName)+1, servername, sizeof(servername) );
MultiByteToWideChar( CP_ACP, 0, "workgroup",
strlen("workgroup")+1, workgroup, sizeof(workgroup) );

/* Display list of available groups */
do {
/* Execute (resume) enumeration */
netok = NetLocalGroupEnum( (LPWSTR) servername, /* server name */
1, /* we want GROUP_INFO_1 */
(LPBYTE *)&bufptr1, /* NET API buffer */
2048, /* desired buffer size */
&entriesread, /* number of retrieved entries*/
&totalentries, /* entries available */
&resumehandle ); /* handle for next enum call */

if ((ERROR_MORE_DATA != netok) && (NERR_Success != netok)) {
break;
}

/* Display enumerated groups */
for( ientry = 0; ientry < entriesread; ientry ++ ) {

WideCharToMultiByte( CP_ACP,
0,
bufptr1[ientry].lgrpi1_name,
-1,
GoupsName /*это пока тестовый не обращать внимания*/,
256,
NULL,
NULL );
}

} while (netok == ERROR_MORE_DATA);

// Necessary cleanup
if (bufptr1) {
NetApiBufferFree( bufptr1 );
}
return (TRUE);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.