список машин - NetServerEnum
От: meier  
Дата: 05.07.05 10:25
Оценка:
Dobrogo dnja wsem.
Wosnikla problema s ispoljsowaniem funkzii NetServerEnum. W seti klienta sushestwuet domain s > 50000 stations. Dlja etoi domain zitaet funktion toljko nemnogim > 3500 stationen.
Kod:



USES_CONVERSION;
LPCTSTR lpszDomain = (LPCTSTR)szDom;

if (lpszDomain != NULL)
{
LPWSTR kpwszDom = A2W(szDom);

DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
LPSERVER_INFO_101 pBuf = NULL;
DWORD dwLevel = 101;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwTotalCount = 0;
DWORD dwServerType = m_dwReadMody; // probowal: SV_TYPE_NT, SV_TYPE_ALL, SV_TYPE_WORKSTATION, SV_TYPE_SERVER
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
LPTSTR pszServerName = NULL;
DWORD i;


nStatus = NetServerEnum(NULL,
dwLevel,
(LPBYTE *) &pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries,
dwServerType,
kpwszDom,
&dwResumeHandle);

m_dwEntriesRead = dwEntriesRead;
m_dwTotalEntries = dwTotalEntries;

//
// If the call succeeds,
//
if( (nStatus == ERROR_MORE_DATA) )
..........

if ( (nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA) )
{
if (pBuf != NULL)
{
//
// Loop through the entries and
// print the data for all server types.
//
for (i = 0; i < dwEntriesRead; i++)
{
// Convert server name back to ANSI
// if input domain name had to be
// converted
CString strStation = W2A((WCHAR*)pBuf[i].sv101_name);
m_StationList.AddTail(strStation);
}

if(pBuf)
NetApiBufferFree(pBuf);
}
}
}

Result: wsegda nStatus == NERR_Success i dwTotalEntries = dwEntriesRead = 3500 wmesto ~50000


Kto nibudj stalkiwalsja s problemoj ?
Gde terjajutsja ~46000 stationen ?

Saranee blagodaren,
Eugen


05.07.05 17:49: Перенесено модератором из 'C/C++' — WolfHound
Re: список машин - NetServerEnum
От: adontz Грузия http://adontz.wordpress.com/
Дата: 05.07.05 11:48
Оценка:
Здравствуйте, meier, Вы писали:

Яункции Net считаются устаревшими.
Используй интерфейсы Active Directory (те что начинаются с IAD), тем более что есть домен
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: список машин - NetServerEnum
От: meier  
Дата: 05.07.05 15:20
Оценка:
Здравствуйте, adontz, Вы писали:

A>Используй интерфейсы Active Directory (те что начинаются с IAD), тем более что есть домен


Probowal ja i etu wosmoshnostj c AD.
Tam moshno prozitatj wse saregistrirowannie stations, no mne to nushni aktivnie stations.
Re[3]: список машин - NetServerEnum
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 05.07.05 19:41
Оценка:
Здравствуйте, meier, Вы писали:

M>Здравствуйте, adontz, Вы писали:


A>>Используй интерфейсы Active Directory (те что начинаются с IAD), тем более что есть домен


M>Probowal ja i etu wosmoshnostj c AD.

M>Tam moshno prozitatj wse saregistrirowannie stations, no mne to nushni aktivnie stations.
Ну так а ты уверен, что в момент когда ты енумил машины, все они были включены? Может как раз и были включены только те, что проенумелись??
github.com/dmitrigrigoriev/
Re[4]: список машин - NetServerEnum
От: meier  
Дата: 06.07.05 06:53
Оценка:
Здравствуйте, SkyKnight, Вы писали:

Ну так а ты уверен, что в момент когда ты енумил машины, все они были включены? Может как раз и были включены только те, что проенумелись??

Klient utvershdaet, zto w Windows — Explorer on wse 50000 stations browsen moshet. A saskozitj w kontoru na parozku testow wosmoshnosti net.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.