Platform SDK: Active Directory, ADSI, and Directory Services

Example Code for Adding a Member to a Group

[C++]

The following code fragment contains a function that adds a member to a group:

////////////////////////////////////////////////////////////////////////////////////////////////////
/*  AddMemberToGroup()   -       Adds the passed directory object as a member of passed group
 
    Parameters
 
        IADsGroup * pGroup       - Group to hold the new IDirectoryObject
        IADs* pIADsNewMember     - Object which will become a member of the group.
                                   Object can be a user, contact, or group.
*/
HRESULT AddMemberToGroup(IADsGroup * pGroup, IADs* pIADsNewMember)
{
    HRESULT hr = E_INVALIDARG;
    if ((!pGroup)||(!pIADsNewMember))
        return hr;
 
    // Use the IADs::get_ADsPath() member to get the ADsPath
    // Once the ADsPath string is returned, all that is needed 
    // to add the new member to the group, is to call the 
    // IADsGroup::Add() member, passing in the ADsPath string.
    // Ask the new member for it's AdsPath
    // This is a fully qualified LDAP path to the object to add.
    BSTR bsNewMemberPath;
    hr = pIADsNewMember->get_ADsPath(&bsNewMemberPath); 
    if (SUCCEEDED(hr))
    {
 
        // Use the IADsGroup interface to add the new member.
        // Pass the LDAP path to the 
        // new member to the IADsGroup::Add() member
        hr = pGroup->Add(bsNewMemberPath);
 
        // Free the string returned from IADs::get_ADsPath()
        SysFreeString(bsNewMemberPath);
    }
    return hr;
}
[Visual Basic]

The following subroutine adds a member to a group:

'////////////////////////////////////////////////////////////////////////////////////////////////////
' AddUsersToGroup ()   - Function for adding users to a group
'
'    Parameters
'
'        IDirectoryObject  oDirObject    -   Parent Directory Object for the new group
String array  UsersList           - List of Users to add. 
 
Sub AddUsersToGroup(oDirObject As IDirectoryObject, sUsersList() As String, ByVal iNumUsers As Integer)
    Dim x As Integer
 
 
    ' Add the passed Users
    ' go through the list and pull out the ADsPath properties contained therein
    ' use this path to call IADsGroup::Add(), thereby adding the object to the group
    For x = 0 To iNumUsers
        Dim oIADsGroup_NewGroup As IADsGroup
        Set oIADsGroup_NewGroup = oDirObjectRet
        oIADsGroup_NewGroup.Add sUsersList(x)
Set oIADsGroup_NewGroup = Nothing
    Next x
 
End Sub