The Win32 Network Management APIs 38






NetUserSetGroups() Program Example


The NetUserSetGroups() function sets global group memberships for a specified user account. The following code sample demonstrates how to set global group memberships for a user account with a call to the NetUserSetGroups() function. The code sample fills in the grui0_name member of the GROUP_USERS_INFO_0 structure and calls NetUserSetGroups(), specifying information level 0.

Create a new empty Win32 console application project. Give the project name and change the project location is needed.


NetUserSetGroups() Program Example: Creating new Win32 C++ empty console application project


Then, add the source file and give it a suitable name.


NetUserSetGroups() Program Example: Adding new C++ source file for the C++ source code


Then, add the following source code.


#ifndef UNICODE

#define UNICODE



#pragma comment(lib, "netapi32.lib")


#include <stdio.h>

#include <windows.h>

#include <lm.h>


int wmain(int argc, wchar_t *argv[])


   DWORD dwLevel = 0;


   NET_API_STATUS nStatus;


   if (argc != 4)


      fwprintf_s(stderr, L"Usage: %s \\\\ServerName UserName GroupName\n", argv[0]);

      wprintf(L"Example: %s \\\\BigGuySer \"Mike Spoon\" Administrators\n", argv[0]);




   // Fill in the GROUP_USERS_INFO_0 structure member.

   gi.grui0_name = argv[3];


   // Call the NetUserSetGroups() function; specify level 0.

   nStatus = NetUserSetGroups(argv[1],argv[2],dwLevel,(LPBYTE)&gi,1);


   // If the call succeeds, inform the user.

   if (nStatus == NERR_Success)


         wprintf(L"NetUserSetGroups() looks pretty fine!\n");

         fwprintf_s(stderr, L"Group membership has been successful for %s\n", argv[2]);


   // Otherwise, print the system error.



         wprintf(L"NetUserSetGroups() failed miserably!\n");

         fwprintf_s(stderr, L"A system error has occurred: %d\n", nStatus);



   return 0;



Build and run the project. The following screenshot is a sample output.


NetUserSetGroups() Program Example: A s ample program output





< Win32 Network Management APIs 37 | Win32 Network Management APIs | Win32 Programming | Win32 Network Management APIs 39 >