none
список групп в которые входит пользователь RRS feed

Ответы

  • NetUserGetLocalGroups() в помощь

    Пример

    #include <stdio.h>

    #include <Windows.h>

    #include <LM.h>

    int main(int argc, char* argv[])

    {

           LOCALGROUP_INFO_0* pBuf = NULL;

           DWORD level = 0;

           DWORD flags = LG_INCLUDE_INDIRECT;

           int maxlen = MAX_PREFERRED_LENGTH;

           DWORD entriesRead = 0;

           DWORD totalEntries = 0;

           NET_API_STATUS status;

     

           status = NetUserGetLocalGroups(L"OLEGPC", L"Oleg", level, flags, (LPBYTE*)&pBuf, maxlen, &entriesRead, &totalEntries);

     

           if(status == NERR_Success)

           {

                  LOCALGROUP_INFO_0* tempBuf;

                  tempBuf = pBuf;

                  int totalCount = 0;

     

                  if(tempBuf != NULL)

                  {

                         printf("Local groups for user 'Oleg'\n");

                         for(int i = 0; i < entriesRead; i++)

                         {

                               wprintf(L"%s\n", tempBuf->lgrpi0_name);

     

                               tempBuf++;

                               totalCount++;

                         }

                        

                  }

     

                  if(totalCount < entriesRead)

                  {

                         printf("Error: not all groups where discovered\n");

                  }

                  else

                  {

                         printf("OK: total number groups for user Oleg: %d\n", totalCount);

                  }

           }

           return 0;

    }

     

    Вывод:

    Local groups for user 'Oleg'

    HelpLibraryUpdaters

    Administrators

    OK: total number groups for user Oleg: 2

    ЗЫ: не забудь слинковать с netapi32.lib

    • Предложено в качестве ответа PashaPash 13 октября 2010 г. 5:57
    • Помечено в качестве ответа I.Vorontsov 13 октября 2010 г. 8:22
    12 октября 2010 г. 20:36