[C++; VS2008; XP; W2k3] NetUserEnum (Level 23)

Ich versuch mit Level 23 auf nem XP SP3 und Windows 2k3 Server auszuführen.
iErr gibt mir 124 zurück.
124 The system call level is not correct.

Folgender Code:

Code:
DWORD dwRead = 0, dwTotal = 0;
LPDWORD *ptCont = NULL;
LPUSER_INFO_23 ui23;
 
iErr = ::NetUserEnum(NULL, 23, FILTER_NORMAL_ACCOUNT, (LPBYTE*) &ui23, 255, &dwRead, &dwTotal, ptCont);

Andere Call-Levels funktionieren, aber ich will an die Nutzer SID ran, die ich danach für den aufruf von "NetLocalGroupAddMembers" auf Call-Level 0 brauch.
Laut MSDN wird CallLevel 23 ab Windows 2000 unterstützt (oder versteh ich nur was falsch?)

Wäre für Tips/Infos dankbar.

Gruß Dave
 
Workaround gefunden, geh den Weg über
NetUserEnum() mit CallLevel 0
und hol mir dann NetUserGetInfo() mit CallLevel 23

Das geht zwar ist aber lästig wenn mir bereits das erste die Lösung bringen sollte.

Code:
iErr = ::NetUserEnum(NULL, 0, FILTER_NORMAL_ACCOUNT, (LPBYTE*) &ui0, 255, &dwRead, &dwTotal, &ptCont);
for(index = 0;index < dwRead; index++)
{
iErr = ::NetUserGetInfo(NULL, ui0->usri0_name, 23, (LPBYTE*) &ui23);
[...]
ui0++;
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück